
心有灵犀为您分享以下优质知识
二进制补位规则主要涉及有符号数的表示和运算,具体规则如下:
一、补码表示规则
有符号数在补码表示中,若需扩展位数(如从4位扩展到8位),需在最高位(符号位)左侧补1,其余位补0。例如:
- 4位补码 `1100B` 扩展为8位后为 `11111100B`
- 4位补码 `0100B` 扩展为8位后为 `00000100B`
原码与补码转换
- 正数:
原码和补码相同,如 `+5` 的原码 `00101` 和补码 `00101`
- 负数:原码按位取反后加1,如 `-5` 的原码 `10101`,补码为 `101010`(扩展后为 `1010101`)
二、补码运算规则
- 两个补码数相加,直接按位相加,符号位进位舍弃。例如:
[
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*}
]
三、注意事项
符号位处理:
符号位仅用于区分正负,不参与数值运算
扩展位数影响:位数扩展会改变数值范围(如8位补码可表示-128到127)