您当前的位置:首页 > 计算机 > 编程开发 > 编程箴言

为何要用反码加1等于补码来运算负数

时间:01-29来源:作者:点击数:

若从头厘清,请先看原文链接,在看下面解释

详细解释:原文(七)为何这样求补码

为何负数的补码是反码加1?

首先理解负数就是做减法,而在模的概念中,减法等同于加上这个减数的同余数,比如举例16(10000)是模,(-2)即减2,等同于加上16-2=14,此时(+14)就可以表示-2。而(+14)是通过16-|-2|=14得来的。

到此在运算负数时,

负数(等价意义)=模-|负数| ------(1式)

然后解释为什么要反码加1

比如(-2)的反码是1101,而反码的绝对值是0010(2),(-2)+2应该=0,但从1101+0010=1111看并不等于0,如何才能等于0呢?1111加1就是10000(模),取低4位0000就等于0了。所以有如下公式:

负数反码+负数的绝对值+1=模------(2式)

而从上文(1式)知

负数(等价意义)=模-|负数|

将(2式)移项,得:

负数反码+1=模-|负数|-------(3式)

根据(3式)

所以在碰到运算是负数时,就等价于(3式)右边模-|负数|,也就是同余,而同余此处称为补码。 再看(3式)左侧,负数反码+1=补码

帮助大家理解,谢谢!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门