如何处理二进制表示中的补码溢出

How to handle Two's complement Overflow in Binary representation

在这个link,我在看CMU的Computer Science复习资料

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,虽然它表示有溢出,但我不确定我可以在 logic/assume 中跳到哪里,它会是负数。

请向我解释这个推理是从哪里来的from/where我错了。谢谢!

编辑:图片似乎从 Link 消失了。

你对二人称赞的理解似乎是正确的。假设 8 位,30 + 2 应该是你所说的 32。但是,如果我们假设 6 位,我们将得到 table 提供的答案。

  01 1110
+ 00 0010
---------
= 10 0000

由于前导位与两个操作数不同(并且我们正在执行两个正数的加法),因此发生溢出并且答案是-32。