学习一下手算十进制到二进制, 包括正数和负数转换二进制.
十进制正数 转换 二进制
- 除以2的整数结果除以2到0为止.
- 结果从下往上看.
Example: 把9计算成2进制.
9 9/2 = 4 -> 1 ; 9/2=4.5 把小数点忽略, 就是4, 因为有小数点, 所以这个位置就是1. 4/2 = 2 -> 0 ; 4/2=2 没有小数点, 这个位置就是0. 2/2 = 1 -> 0 ; 结果等于1的时候还要进行除. 1/2 = 0 -> 1 ; 结果为0的时候才能结束, 1/2=0.5, 有余数, 所以为1. 从下向上看, 排序1001, 这个计算的结果从上到下和从下到上都一样...
Example: 把27计算2进制.
27 27/2 = 13 -> 1 13/2 = 6 -> 1 6/2 = 3 -> 0 3/2 = 1 -> 1 1/2 = 0 -> 1 结果是: 0001 1011
十进制负数 转换 二进制
- 计算负数
绝对值
的二进制结果. - 将第一步计算的结果进行取反.
- 取反后+1, 就是最终结果
- 64位的, 计算的内容前面填充1.
- Example: 把-9转换二进制
9 9/2 4 1 4/2 2 0 2/2 1 0 1/2 0 1
源码: 1001
反码: 0110
补码: 反码 + 1 : 0111
结果: 0111
- Example: 把-15转换二进制
15
15/2 7 1
7/2 3 1
3/2 1 1
1/2 0 1
源码: 1111
反码: 0000
补码: 0001
结果: 0001
```
其他数计算都是这个步骤, 去尝试一下吧~