二进制小数的补码表示及运算规则如下:
一、补码表示方法
对于负数,需在符号位后补零扩展至目标位数(如8位)。例如,4位补码的-1扩展为8位为`11111100`。
原码转补码
- 正数:原码与补码相同(如`0.0111100`)。
- 负数:
- 先取反(符号位不变,其余位取反):`1.0111100`。 - 再加1:`1.0111101`(如-0.46875的补码为`1.1000100`)。
二、运算规则
加法
- [A]补 + [B]补 = [A+B]补(模2^n,n为位数)。
减法
- [A-B]补 = [A]补 + [-B]补(模2^n)。
求补数
- 负数补码:符号位不变,其余位取反后加1。
三、注意事项
溢出检测: 加法结果超过位数时需处理(如模运算)。 符号位处理
四、示例
以8位定点小数为例:
正数0.101(原码/补码)→ 0.10100000
负数-0.101(原码)→ 1.01011111(补码)
加法:0.10100000 + 1.01011111 = 1.11111111(结果为-0.00000001)