二进制补码是一种计算机中用于表示有符号整数的方法,其核心规则和计算方式如下:
一、基本规则
正数的补码与原码相同,直接使用其二进制表示。例如,+5的原码和补码均为`0000 0101`。
负数的补码
负数的补码通过以下步骤获得:
- 取反: 将原码除符号位外的所有位取反(0变1,1变0); - 加1
二、示例说明
- 原码:`0000 0101`
- 补码:`0000 0101`(与原码相同)。
-5的补码
- 原码:`1000 0101`
- 取反:`1111 1010`
- 加1:`1111 1011`。
特殊值
- -1: 原码`1000 0001`,取反后`1111 1110`,加1得`1111 1111`; - -128
三、运算特性
补码系统简化了加法运算,无需单独处理负数。例如:
- `-5 + 3`:
- -5的补码为`1111 1011`,3的补码为`0011`;
- 直接相加得`1000 0010`,即-2。
减法运算
减法可转化为加法:`A - B = A + (-B)`。例如:
- `-5 - 3`:
- -3的补码为`1100 1011`;
- 相加得`1000 0110`,即-8。
溢出与下溢
- 溢出: 当正数加负数结果为负数,或负数减负数结果为正数时,表示溢出; - 下溢
四、总结
补码通过“取反加1”的规则,将加减法统一为加法运算,简化了计算机硬件设计。正数与零的补码与原码相同,负数的补码通过取反加1获得,且补码系统天然支持减法、乘法等运算。