两个二进制负数相加得正数?如题-1011+(-1111)-1011补码为10101-1111补码为10001两者相加补码为1 00110舍去最高位求补码01010哪里有错?

问题描述:

两个二进制负数相加得正数?
如题
-1011+(-1111)
-1011补码为10101
-1111补码为10001
两者相加补码为
1 00110
舍去最高位
求补码
01010
哪里有错?

算的没错,但是结果有错.
在限定了位数之后,补码所能表示的范围,就确定了.
超出了这个范围,称为溢出,结果就是错误的.
楼主的问题,就是溢出了.
想要弥补,只能增加位数,重新计算.