不懂为什么要用补码来表示带符号的十进制整数

img


大一c语言课没搞懂这个十进制数转化为带符号的十进制为啥要先变成二进制然后取补码来求得-1这个答案,为什么要补码一下,谢谢

符号位可以和数值为一起参加运算,比如俩个负数相加,只要结果在范围内,则可直接按位相加,这是原码做不到的(原码符号位相加会出错)。
由于其模运算的特性,补码可以直接利用加法的形式计算整数间的减法,既省时又省力。
在原码中,-0和+0都存在,而补码的表示则确保了0的唯一值,即00000…00。
既然0唯一确定了,那么我们便多出了一个10000…00,以此表示最小负数,这样就比原码多了一个负数。