两条规则:
规则1:最高位为1的数,必须取反加1后,才能按权展开计算出值,最后取相反数。
规则2:最高位为1的数是负数,最高位为0的数是非负数。
实例如下:
A=1111 1011取反加1后是B=0000 0101,这个时候可以按权展开了,B按权展开后是5,所以A=-5。
A=1000 0000取反加1后是B=1000 0000,这个时候可以按权展开了。根据规则1,B按权展开后是128,所以A=-128。B本来是128,但为了迎合规则2,所以B=-128,而不是128。所以最小负数的绝对值比最大正数大1。
有人说是为了避免+0和-0,其实并不是。0000 0000取反加1后还是0000 0000,也就是说0的补码就是0。