
风吹过的记忆为您分享以下优质知识
八位二进制加运算可分为无符号数和有符号数两种情况,具体规则如下:
一、无符号数加法
从最低位(最右边)开始,逐位相加,逢2进1。例如:
$$
begin{array}{c@{}c@{}c@{}c@{}c@{}c@{}c@{}c}
& 1 & 0 & 0 & 1 & 0 & 1 & 0 & 1
+ & 0 & 1 & 1 & 0 & 0 & 1 & 1 & 0
hline
& 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1
end{array}
$$
结果为100000001(十进制145)。
优化技巧
可直接记忆权值(128、64、32、16、8、4、2、1),例如:
$$
1 cdot 128 + 0 cdot 64 + 0 cdot 32 + 1 cdot 16 + 0 cdot 8 + 4 cdot 2 + 0 cdot 1 + 1 cdot 1 = 149
$$
这种方法计算效率更高。
二、有符号数加法(补码运算)
转换为补码
两个符号位不同的八位二进制数相加时,需先转换为补码形式。例如:
- 正数:原码=补码
- 负数:原码→反码→补码(符号位不变,其余位取反加1)。
统一运算
转换为补码后,按无符号数加法规则进行运算,符号位参与计算。例如:
$$
11111110 , (text{补码形式的-2}) + 00000001 , (text{正数1}) = 10000000 , (text{补码形式的-1})
$$
结果为-1(原码10000001)。
总结
无符号数:
直接逐位相加,逢2进1,可利用权值表优化计算。- 有符号数:需先转换为补码,再按无符号数加法规则运算,符号位参与计算。