二进制反码问题

2025-06-21 05:47:16
推荐回答(1个)
回答1:

尽管有了推荐答案,这里还是想说两句——
因为计算机太“笨”了,不会做减法,只会做加法。为了能做减法,把减数看作负数来做加法运算。可是这负数怎么表示呢?发现用所谓“补码”就能实现。即:求a-b的值时,将-b用补码表示就可以做加法了。可是补码怎么求得呢?正确的理论是:一个n位二进制数x的补码等于2^n-x(2^n表示2的n次方,这是带符号的),而求这个“补码”方法是“其数据位反码加1,符号位固定为1”。这样做了以后带来了极大的好处:连同符号位一起参加运算,助以溢出判断规则得出的结果就都是正确的了……以8位二进制为例,如123-4则等价为123+4的补码=01111011+11111100=[1]01110111,按溢出规则[1]被舍弃,剩下的01110111刚好是119.