在表示范围外加减二进制补码会发生什么?

What happens exactly when adding or subtracting two's complement numbers outside the range of representation?

如果有一个范围为-1024 到1023 的11 位二进制补码,如果超出该范围会怎样?例如,我有 -1024 并减去 1。或者我有 1023 并加 1。它会崩溃吗?保持不变?更改为其他号码?

-1025 不能用 11 位二进制补码表示。如果我们添加它们,就会溢出:

-1024 =   10000000000 => 11 bits
-1 =     +11111111111 => 11 bits
         ------------
         101111111111 => 12 bits

接下来会发生什么取决于您的实施。由于这是一个固定宽度二进制数的问题,我们丢弃溢出位,留下 011111111111023.

Stack Overflow 上有 similar 您可能想要查看的内容。