只是在使用2的补体进行二进制减法,但是我想要一些解释。
要执行11 - 9,我首先将9转换为负数,方法是将0改为1和1到0,然后添加1,然后将负数加为11 +(-9)。
二进制
00001011
+11110111
---------
100000010据我所知,我只是忽略了MSB,所以它变成了:
00000010为什么我可以放弃MSB?
发布于 2014-07-04 14:36:59
因为你有效地先加了它。
倒置/加一个组合相当于从常数“大于允许的”中减去:
100000000
00001001
--------- -
11110111因此,您已经将11 - 9更改为11 + (256 - 9),您可以将其编写为11 - 9 + 256,以便更清楚地说明,为了进行数学运算,您自己添加了“额外位”,所以现在您必须删除它以获得原始表达式的结果。
https://stackoverflow.com/questions/24576163
复制相似问题