美文网首页
iOS 二进制转换以及位运算

iOS 二进制转换以及位运算

作者: 熊梓君 | 来源:发表于2018-12-11 20:35 被阅读6次

进制之间的转换

  • 十进制与二进制之间转换
    • 二进制转成十进制
      整数部分从个位开始,依次从2的0次方开始,让每位相加即可转换成功。
比如:11101
1 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2 ^ 0 
= 16 + 8 + 4 + 0  + 1
= 29

小数部分从小数位最左边开始,依次从2的-1次方开始,让每位相加。

比如:0.001
0 * 2^-1 + 0 * 2 ^-2 + 1 * 2^-3
= 0 + 0 + 1/8
= 0.125
  • 十进制转成二进制
    整数部分除以2,然后取出余数,再用商依次往后面除,直到商为0。最后从第一个余数开始代表低位最后一个余数代表高位,即得到对应的二进制数。
比如:29
29 / 2 = 商 14 余 1
14 / 2 = 商 7 余 0
7 / 2 = 商 3 余 1
3 / 2 = 商 1 余 1
1 / 2 = 商 0 余 1

所以: 29 = 11101

小数部分计算方法:用小数部分乘以2,然后取整数部分,依次乘到结果为1时结束,然后取出每次的整数按顺序做为小数部分即可。

比如:0.125
0.125 * 2 = 0.25 整数部分:0
0.25 * 2 = 0.5 整数部分:0
0.5 * 2 = 1 整数部分:1

所以:0.125 = 0.001
  • 八进制、十六进制都按照以上方法计算即可。

位运算

  • 按位与:&
    如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
  • 按位或:|
    两个相应的二进制位中只要有一个为1,该位的结果值为1
  • 按位异或:^
    若参加运算的两个二进制位值相同则为0,否则为1
  • 取反:~
    ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1
  • 左移:<<
    用来将一个数的各二进制位全部左移N位,右补0
  • 右移:>>
    将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0

相关文章

  • iOS 二进制转换以及位运算

    进制之间的转换 十进制与二进制之间转换二进制转成十进制整数部分从个位开始,依次从2的0次方开始,让每位相加即可转换...

  • 【算法训练营学习笔记-Week07】位运算的妙用

    位运算 如何从十进制转换为二进制 位运算符号 含义运算符示例左移<<0011 ->0110右移>>0110 -> ...

  • 2019-04-23 java语法基础8

    1.位运算符 要做位运算首先要将数据转换为二进制。 (1)&为与运算 有0则0,例如3 & 4: (2)|位或运算...

  • 二进制在项目中的使用场景

    如上代码转换成 二进制后: 二进制之前的& | ~ ^ 运算请查看我的 StateMachine项目封装了位运算符...

  • 10/17

    今天老师讲了进制转换和位运算。进制转换就是二进制、八进制、十进制、十六进制的相互转化,位运算包括按位与,按位或,异...

  • “~”运算符

    “~”运算符(位非)用于对一个二进制操作数逐位进行取反操作。第 1 步:把运算数转换为 32 位的二进制整数。第 ...

  • 进制转换以及位运算

    本文代码演示采用的是golang语言 进制 其它进制转十进制 十进制数字计算 二进制转十进制 从最低位开始,将每个...

  • javaSE学习-位运算符

    & 位与 | 位或 位运算符会将数字转化为二进制再进行计算。 分析: 上面这些运算符会将数字转换成2进制再进行运算...

  • 12.21

    今天星期四,今天是牛老师给我们讲课,主要讲了位的运算,包括位运算的运算符,二进制十进制十六进制的转换,位运算的应用...

  • Java运算符

    &(按位与运算符) &(按位与)的运算规则是将两边的数转换为二进制位,然后运算最终值,运算规则即(两个为真才为真)...

网友评论

      本文标题:iOS 二进制转换以及位运算

      本文链接:https://www.haomeiwen.com/subject/tngehqtx.html