二进制补码相加的规则与原码、反码有所不同,主要特点如下:
一、补码加法运算规则
两个补码数可直接按二进制加法规则相加,符号位作为运算的一部分。例如:
- $5$($00000101$)与$-5$的补码($11111011$)相加:
$$
00000101 + 11111011 = 00000000 (text{模2结果}) rightarrow 0
$$
- $3$($00000011$)与$-3$的补码($11111101$)相加:
$$
00000011 + 11111101 = 00000000 (text{模2结果}) rightarrow 4
$$
溢出判断
若最高位(符号位)产生进位,则表示结果溢出,结果不可信。例如:
- $01111111$($-1$)与$00000001$($1$)相加:
$$
11111111 + 00000001 = 100000000 (text{9位结果}) rightarrow text{溢出}
$$
二、关键原理
补码设计: 负数的补码是其绝对值的反码加1,这种设计使得加法运算统一为加法操作,简化了硬件实现。 模2运算
三、示例总结
| 操作数 | 补码形式 | 相加结果(模2) |
|--------|----------|-----------------|
| $5 + (-5)$ | $00000101 + 11111011$ | $0$ |
| $3 + (-3)$ | $00000011 + 11111101$ | $4$ |
| $-1 + 1$ | $11111111 + 00000001$ | 溢出 |
通过上述规则,补码加法实现了计算机中高效的有符号数运算。