计算机内实际上没有减法操作,只能根据加法操作实现减法。根据两个互为相反数的数相加为0的性质,当某个数加上它的反码,能够将所有位数置为1,此时再加上1,即可向前进位,舍掉进位的位数,剩余位数全部为0,因此得到了值为0的数。显然取反再 加1这个数即为该数的相反数,称为补码。这就是补码的设计思想(我所理解的)。
举个例子: 设某个数的原码为1010101,
其反码为0101010,相加得到1111111,
此时再加上1,即可向前进位,
假如前一位的位数是0,进位后得到 10000000,
舍弃其进位的位数,得到0000000,即为0
由此可见,某个数通过取反再加1可以得到某个数的相反数,即为补码。