在 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 更受欢迎?