好的,所以问题来了: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.