二进制补位规则主要涉及有符号数的表示和运算,具体规则如下:
一、补码表示规则
有符号数在补码表示中,若需扩展位数(如从4位扩展到8位),需在最高位(符号位)左侧补1,其余位补0。例如:
- 4位补码 `1100B` 扩展为8位后为 `11111100B`
- 4位补码 `0100B` 扩展为8位后为 `00000100B`
原码与补码转换
- 正数: 原码和补码相同,如 `+5` 的原码 `00101` 和补码 `00101` - 负数
二、补码运算规则
- 两个补码数相加,直接按位相加,符号位进位舍弃。例如:
[
begin{align*}
& 00101 quad (-5)
+ & 10101 quad (+5)
hline
& 11010 quad (-10) quad text{(结果为负数)}
end{align*}
]
- 有符号数加法需注意溢出处理(符号位变化)
减法运算
- 减法转化为加法:`A - B = A + (-B)`,其中 `-B` 为 `B` 的补码。例如:
[
begin{align*}
& 00101 quad (+5)
- & 10101 quad (-5)
hline
& 00000 quad 0 quad text{(结果为0)}
end{align*}
]
三、注意事项
符号位处理: 符号位仅用于区分正负,不参与数值运算 扩展位数影响