使用2补码的二进制算术(减法)的结果如何得到否定答案?



好的,所以问题来了:11100111-110011111

我知道我们必须使用2的补码方法来获得正确的答案,但当我使用它时,将110011111更改为001100000,然后将其添加到11100111,我得到(1(01001000。然而,这个问题的答案是10111000[是的,这是否定的]。

对于如何使用2的补码方法来解决上述问题,我真的很困惑。我搜索堆栈溢出,但似乎没有帖子回答我的这个问题。提前谢谢你帮我!

任何第一位为1的二进制数,如果是有符号数,则为负数,因此由于有(1(0111000,因此为负值。你似乎混淆了有符号和无符号的数字。

你也错误地做了两个的赞美,你应该先从另一个中减去二进制数,然后再加1

1111 1111                       255.
− 0101 1111                     −  95.
===========                     =====
1010 0000  (ones' complement)   160.
+         1                     +   1
===========                     =====
1010 0001  (two's complement)   161.

相关内容

最新更新