x = 30
y = -29
我们如何处理二进制加法的溢出? 我以为我明白了,但是当我加上两个时,这就是我得到的。到30岁。
Two's Complement 30 representation:
0001 1100 x = 30
x+2 = 32
0001 1110
+ 0000 0010
------------
0010 0000
这不等于32,是正面吗? 答案键说x + 2 = -32,虽然它表明存在溢出,但我不知道在哪里可以使逻辑跳跃/假设它将是负数。
请向我解释这个推理来自哪里/哪里出错了。谢谢!
编辑:图片似乎已从Link消失。答案 0 :(得分:0)
您对双方赞美的理解似乎是正确的。假设8位,30 + 2应该是32,因为你说。但是,如果我们假设6位,我们得到表格提供的答案。
01 1110
+ 00 0010
---------
= 10 0000
由于前导位与两个操作数不同(我们正在执行两个正数的加法),因此发生了溢出,答案是-32。