在二进制补码中,0-127被表示为00000000到01111111。对于负数,我们将无符号表示中的所有位取反并加1以获得二进制补码。
(参考资料:http://en.wikipedia.org/wiki/Signed_number_representations#Two.27s_complement)
因此,在二进制补码中,-1将是:
(参考资料:http://en.wikipedia.org/wiki/Signed_number_representations#Two.27s_complement)
因此,在二进制补码中,-1将是:
无符号1 = 00000001但对于-128,如果我们按照相同的步骤进行:
取反所有位 = 11111110
加1 = 11111111
无符号128 = 10000000所以,-128和128在二进制补码表示法中具有相同的表示形式?为什么8位二进制补码的范围不是-127到128?简而言之,为什么-128比使用相同位数表示无符号128更受欢迎?
取反所有位= 01111111
加1= 10000000
8h
。由于最高位被设置为1,它被认为是负数,非常简单明了。 - tay10r