我想知道是否有人可以快速为我仔细检查我的工作。如果给我两个负数:-33 和 -31。如果我将它们加在一起,使用 2 的补码会得到什么结果。
注意:操作必须使用 6 位的字长。
我的答案
所以在这样做之后,我计算出 -31 是 2 中的 100001。我还计算出 -33 是 2 的补码中的 011111。将它们加在一起时,我得到了 1000000,但是这个数字是 7 位,所以我砍掉了高位,因为我绑定到 6 位的字长。这会产生数字 000000。其中包含符号位 0,表示它是偶数。然而,由于 2 个负数的总和不能是偶数,这显然是一个溢出。所以我取 2 的 000000,即 000000。
所以答案应该是:0,因为发生了缓冲区溢出。你们觉得这对吗?谢谢。:)