【发布时间】:2013-06-05 03:35:06
【问题描述】:
在 2 的补码中,0-127 表示为 00000000 到 01111111。如果是负数,我们将无符号表示中的所有位反转并加 1 以获得 2 的补码。
(参考:http://en.wikipedia.org/wiki/Signed_number_representations#Two.27s_complement)
所以 2 的补码中的 -1 将是:
无符号 1 = 00000001 反转所有位 = 11111110 加 1 = 11111111但是对于 -128,如果我们按照相同的步骤:
无符号 128 = 10000000 反转所有位= 01111111 加 1 = 10000000所以 -128 和 128 在 2 的补码表示法中具有相同的表示?为什么 8 位的 2 补码范围不是 -127 到 128?简而言之,为什么 -128 比使用相同位数表示无符号 128 更受欢迎?
【问题讨论】:
-
8h无论如何都不是首选。由于设置了最高有效位,因此它被认为是负数、简单明了。