·

问: 补码为啥这么设计?

Replies
7

计算机内实际上没有减法操作,只能根据加法操作实现减法。根据两个互为相反数的数相加为0的性质,当某个数加上它的反码,能够将所有位数置为1,此时再加上1,即可向前进位,舍掉进位的位数,剩余位数全部为0,因此得到了值为0的数。显然取反再加1这个数即为该数的相反数,称为补码。这就是补码的设计思想(我所理解的)。

举个例子: 设某个数的原码为1010101,

              其反码为0101010,相加得到1111111,

              此时再加上1,即可向前进位,

              假如前一位的位数是0,进位后得到 10000000,

              舍弃其进位的位数,得到0000000,即为0

              由此可见,某个数通过取反再加1可以得到某个数的相反数,即为补码。