二进制补码是计算机中处理有符号整数的标准方法,其核心规则如下:
一、基本定义
最高位为符号位(0表示正数,1表示负数),其余位为数值位。例如,+5的原码为`0000 0101`,-5的原码为`1000 0101`。
符号位不变,数值位逐位取反。例如,-5的反码为`1111 1010`。
反码加1。例如,-5的补码为`1111 1011`。
二、运算规则
- 整数:
`[A]补 + [B]补 = [A+B]补 (mod 2^(n+1))`
- 小数:`[A]补 + [B]补 = [A+B]补 (mod 2)`
- 示例:`-5 + 3`,补码运算为`1111 1011 + 0000 0011 = 1 0000 0110`,结果为-2。
- `A - B = A + (-B)`,其中`-B`为`B`的补码。 - 示例:`-5 - 3`,补码运算为`1111 1011 + 1111 1011 = 1 1111 0110`,结果为-8。
三、注意事项
符号位处理:
运算时符号位参与计算,结果符号位由进位决定(借位时符号位为1)。
n位补码可表示范围为`-2^(n-1)`到`2^(n-1)-1`,运算时需注意溢出。
直接对补码进行加减运算,无需单独处理负数,简化了计算机底层实现。
四、应用场景
补码广泛应用于计算机算术运算、逻辑运算及存储,通过统一符号位处理简化了计算机硬件设计。