Binary 如果二进制中的减法溢出怎么办
我试着做这个等式-122-(7),结果是=01111111 我用2的补码表示-122,得到=10000110。我用2的补码来表示7,这样我可以做加法,得到=11111001。当我将两者相加时,我得到了带进位1的=01111111。我认为这不是-129的正确答案忽略溢出位 位宽为8的2的补码的范围为[-128127] 这个二进制数学表明(-122)+(-7)等于什么Binary 如果二进制中的减法溢出怎么办,binary,Binary,我试着做这个等式-122-(7),结果是=01111111 我用2的补码表示-122,得到=10000110。我用2的补码来表示7,这样我可以做加法,得到=11111001。当我将两者相加时,我得到了带进位1的=01111111。我认为这不是-129的正确答案忽略溢出位 位宽为8的2的补码的范围为[-128127] 这个二进制数学表明(-122)+(-7)等于什么 122 => 01111010 7 => 00000111 -122 => 10
122 => 01111010
7 => 00000111
-122 => 10000110
-7 => 11111001
+ +
------ ----------
127 1 01111111
01111111 => 127
在本例中,我们看到有一个指定为-256的溢出位-256超出8位范围[-128127]。大多数实现都会删除这个溢出位,因此结果将是127
进一步阅读
如果你好奇的话,还有其他的stackoverflow答案可以更详细地探究二的补码溢出