对于32位整数,二进制100 ...(31个零)的值是多少?

时间:2011-04-17 17:05:03

标签: c# java bit-manipulation

这只是一个随意的想法。 两个补码100 ...(31个零)也是100 ...... 因此,该值必须为0.但我们知道0的二进制表示是000 ...

我知道它不能是-0和+0,因为每个二进制表示应映射到唯一值。

2 个答案:

答案 0 :(得分:8)

它是-2 31 。二进制补码只有一个零,负数范围比正数多一个数。是的,这意味着有一个没有正数的负数 - 这有时被称为»weird number«,因为它是两个补数的构建例外。

答案 1 :(得分:2)

这是可能的最小值:-2 31 。它不是零,因为100 ......不是零。它是2 31