二进制补码计算(-3)+(-6)运算结果为【1】0111,结果产生溢出,我想知道正确的解决办法,求指教?

2024-11-02 18:19:29
推荐回答(2个)
回答(1):

从10进制来说:
减一,和 加99,效果相同吗?
在100之内,它们就是相同的。
99,就是1的补数,100就是模。
从8位2进制来说:
减一,和 加255,效果也是相同的。
255,就是1的补码,二进制数
1
0000
0000
就是模,即十进制的
256。
求出补码后,就可以用“加补码”完成减法运算。
原理就是上述的“同模”理论。
如果结果的数字太大,超出了256所能容纳的范围,就是溢出。
溢出了,并没有解决的办法。
反码+1的方式,只是经验公式而已,没有原理。
它说明不了-128的补码。因为在8位二进制的条件下,-128并没有反码。

回答(2):

二进制补码计算(-3)+(-6)运算结果为【1】0111,

结果产生溢出,我想知道正确的解决办法,求指教?

------------------------

你是用四位的补码,计算(-3)+(-6)=-9。

但是,四位的补码,表示范围是:-8 ~ +7。

溢出,是必然的。

解决办法,很简单。

增加一位,就行了。