二进制减法 - 额外数字?

时间:2014-07-04 14:09:48

标签: math binary

使用两个补码搞乱二进制减法,但我想解释一下。

要执行11 - 9我首先将0转换为负数,方法是将0更改为1,将1更改为0,然后再加1。然后我添加负数,使其变为11 +(-9)

二进制

 00001011
+11110111
---------
100000010

据我了解,我只是忽略了MSB,所以它变成了:

00000010

为什么我可以放弃MSB?

1 个答案:

答案 0 :(得分:0)

因为您首先有效地添加了它。

反转/添加一个组合相当于从常数中减去一个大于允许的#34;

100000000
 00001001
---------  -
 11110111

因此,您已将11 - 9更改为11 + (256 - 9),您可以将其写为11 - 9 + 256,以便更清楚地表明您添加了"额外位"你自己为了做数学,所以现在你必须放弃它才能得到原始表达式的结果。

相关问题