二进制补码的转换规则如下,分为原码与补码的相互转换及补码与十进制的转换两类:
一、原码与补码的相互转换
- 正数:原码与补码相同,直接使用。 - 负数:符号位保持为1,其余位取反后加1。例如:
- 原码:1000(-4)→ 反码:11110000 → 补码:11110001。
补码转原码
- 符号位为1时,先减1,再取反。例如:
- 补码:11110001(-5)→ 减1:11110000 → 反转:00001111 → 原码:00001111(5)。
二、补码与十进制的转换
正数补码转十进制
- 直接按权展开计算。例如:
- 补码:00001111(7)→ (7 times 2^0 = 7)。
负数补码转十进制
- 先将符号位去掉,取反后加1得到绝对值,再取负。例如:
- 补码:1011(-5)→ 取反:0100 → 加1:0101 → 绝对值:5 → 结果:-5。
三、注意事项
位数固定: 补码转换需明确位数(如8位、16位等),符号位通常为最高位。- 溢出处理