二进制补码的计算主要分为正数和负数两种情况,其核心规则是“符号位参与运算,加法直接相加,减法转化为加法”。以下是具体实例说明:
一、正数补码计算
正数的补码与原码相同,无需额外处理。例如:
十进制数 5:原码、反码、补码均为 `00000101`
十进制数 7:原码、反码、补码均为 `00000111`
二、负数补码计算
负数的补码由原码按位取反后加1得到。例如:
十进制数 -5:
1. 原码:`10000101`
2. 反码:`11111010`
3. 补码:`11111011`
十进制数 -8:
1. 原码:`10001000`
2. 反码:`11110111`
3. 补码:`11111000`
三、补码运算实例
加法运算 - 例1:
计算 `15 + (-25)`
- `15` 的补码为 `00001111`
- `-25` 的补码为 `11100111`
- 相加结果为 `11110110`(溢出位丢弃后为 `-10`)
- 例2:计算 `15 + 24`
- `24` 的补码为 `00011000`
- 相加结果为 `00100001`(即 `33`)
减法运算 - 例1:
计算 `15 - (-25)`
- 转化为加法:`15 + 25`
- 结果为 `40`(补码计算同加法)
- 例2:计算 `15 - 24`
- 转化为加法:`15 + (-24)`
- 结果为 `-9`(补码计算同加法)
四、注意事项
溢出处理:8位系统加法结果超过 `11111111` 时需丢弃溢出位
符号位参与运算:减法时直接用减数补码与被减数相加,无需单独处理符号
通过以上规则和实例,可系统掌握二进制补码的计算方法。