正负数转换为二进制数的方法如下:
一、正数转二进制
直接转换 正数二进制转换采用“除2取余,倒序排列”法。将十进制数不断除以2,记录每次的余数,最后将余数倒序排列,高位补零至固定位数(如8位、16位等)。
例如:将42转换为二进制
```
42 ÷ 2 = 21 余 0
21 ÷ 2 = 10 余 1
10 ÷ 2 = 5 余 0
5 ÷ 2 = 2余 1
2 ÷ 2 = 1余 0
1 ÷ 2 = 0余 1
```
倒序排列余数得: 00101010(8位表示)
计算机存储
计算机内部以补码形式存储负数,正数直接转换为二进制即可。
二、负数转二进制
负数二进制转换需通过原码、反码和补码三个步骤完成:
原码
- 先将负数的绝对值转换为二进制,最高位补1表示负号。
- 例如:-5的原码为 10000000 00000000 00000000 00000101(32位表示)。
反码
- 对原码除符号位外的所有位取反(0变1,1变0)。
- 例如:-5的反码为 11111111 11111111 11111111 11111010。
补码
- 在反码的基础上加1。
- 例如:-5的补码为 11111111 11111111 11111111 11111011(32位表示)。
三、注意事项
位数选择
- 计算机中常见的字长为8位(1字节)、16位、32位等,负数需根据具体数据类型补零至目标位数。
- 例如:-5在8位系统中表示为 11111011,在16位系统中为 FFFFE011。
小数转换
- 整数部分:
同正数方法,采用“除2取余,倒序排列”。
- 小数部分:将小数乘以2,取整数部分,重复此过程直至小数部分为0。
- 例如:将-0.625转换为二进制小数:
```
-0.625 × 2 = -1.25(取整1)
-0.25 × 2 = -0.5(取整0)
-0.5 × 2 = -1.0(取整1)
结果为 -1.111(二进制小数)。
四、示例总结
| 十进制数 | 原码(32位) | 反码(32位) | 补码(32位) |
|----------|----------------|----------------|----------------|
| 5| 00000000 00000000 00000000 00000101 | 00000000 00000000 00000000 00000101 | 000000