0 / 64

设两个 8 位补码表示的数 b7b6b5b4b3b2b1b0和 a7a6a5a4a3a2a1a0相加时溢出(b7、a7为符号标志),则()。

答案: D

答案解析:

补码:正数的补码表示与原码相同,即最高符号位为0,其余为数值位,而负数的补码是由其反码最低位加1的来。补码的一个好处就是不同符号位相加不需要通过减法来实现,而直接可以按照二进制加法法则进行,但同符号位的补码相加可能产生溢出,即结果超出了规定的数值范围,使两个正数相加变负数,两个负数相加变正数,例如:89+67=156,01011001+01000011=10011100=-100。显然结果是不对的。