问答题
下面两个补码相减后是否会出现溢出?为什么?
【正确答案】因为[x]补=01100100,[y]补=11100000
所以[x-y]补=100000000+01100100-11100000
=1000100
由此得到x+y<0的错误结果,出错的原因是由于真值运算结果:
x-y=1100100-(-100000)=10000100
已超出了8位补码的上限+1111111。
【答案解析】
【正确答案】因为[x]补=10001000,[y]补=00010010
所以[x-y]补=100000000+10001000-00010010 (mod 28)
=01110110
由此得到x-y>0的错误结果,出错的原因是由于真值运算结果:
x-y=-1111000-10010=-10001010
已超出了8位补码的下限-10000000。
【答案解析】