二进制整数表示负数的方法主要采用 补码形式,其转换规则如下:
一、补码表示原理
符号位与数值位分离 二进制数最高位为符号位,0表示正数,1表示负数。其余位表示数值。
负数转换步骤
- 取反: 将负数的绝对值按位取反(0变1,1变0)。 - 加1
二、具体转换方法
8位系统示例 - 正数5:
`0000 0101`
- 取反:`1111 1010`
- 加1:`1111 1011`(即-5的补码)。
32位系统示例
- 正数15: `0000 0000 0000 0000 0000 0000 0000 1111` - 取反:`1111 1111 1111 1111 1111 1111 1111 0000` - 加1:`1111 1111 1111 1111 1111 1111 1111 0001`(即-15的补码)。 三、注意事项溢出处理
若取反后加1发生溢出(如8位系统+1后变为`0000 0000`),需根据具体场景处理(如模2运算)。
特殊情况
- -0表示:
全1补码(如8位系统为`1111 1111`),但实际中-0与+0(0000 0000)的补码相同。
四、示例总结表
| 正数 | 二进制 | 取反 | 补码 |
|------|--------|------|------|
| 5| 0000 0101 | 1111 1010 | 1111 1011 |
| -5 | -0000 0101 | 1111 1010 | 1111 1011 |
| 15 | 0000 0001 | 1111 1110 | 1111 1111 0001 |
| -15 | -0000 0001 | 1111 1110 | 1111 1111 0001 |
通过补码表示,计算机可统一处理正负数运算,简化硬件设计。