Binary 加上或减去两个';s表示范围之外的补码?

Binary 加上或减去两个';s表示范围之外的补码?,binary,system,computer-science,twos-complement,Binary,System,Computer Science,Twos Complement,如果有11位2的补码的范围是-1024到1023,如果超出这个范围会发生什么?例如,我有-1024,我减去1。或者我有1023,加上1。它会崩溃吗?保持不变?更改为不同的数字?-1025不能用11位2的补码表示。如果我们添加它们,就会出现溢出: -1024 = 10000000000 => 11 bits -1 = +11111111111 => 11 bits ------------ 101111111111 => 12 bi

如果有11位2的补码的范围是-1024到1023,如果超出这个范围会发生什么?例如,我有-1024,我减去1。或者我有1023,加上1。它会崩溃吗?保持不变?更改为不同的数字?

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

-1024 =   10000000000 => 11 bits
-1 =     +11111111111 => 11 bits
         ------------
         101111111111 => 12 bits
接下来会发生什么取决于您的实现。由于这是一个固定宽度二进制数的问题,我们删除了溢出位,留下
011111111
1023

您可能需要查看堆栈上的溢出