二进制补码运算判断是否溢出的标准是什么?用1101+01010101作为例子

2024-11-02 15:29:07
推荐回答(2个)
回答(1):

要限定数字的位数,运算结果超出了范围,就溢出了。

楼主给出的两个数,没有明确的位数,这就永远不会溢出。

回答(2):

在某些情况,为了减少占用空间,是可以用较少的bit来存放数值的,其实1111 1101 和1101 表示的数值是一样的,就像正数5 二进制位0101,用0000 0101一样可以表示,这里涉及到 符号扩展的概念,正数在前面补0以及负数在前面补1 不影响二进制的值。

所以1101+01010101 等价于 1111 1101+0101010

下面我们看看有符号 溢出判断,这段话应该很好理解

另外要记住重要的一句话,负数+正数肯定不会溢出,只有同符号的数相加才会溢出。