为什么int 1的最小值比正值更远离零?

sum*_*rma 7 c c++ java math numbers

我想知道为什么int,double等比正值多1个负值.

Arn*_*aud 18

简而言之:0必须适合某个地方,它是积极的,这使得它们比负数少.

示例:负数为5个槽,正数为5个,负数为-1到-5,正数为0到4

  • 别忘了阅读@chris链接:)

正如@WhozCraig所指出的,这仅适用于使用带符号二进制数的二进制补码表示的体系结构.

  • +1这是一个很好的答案,因为那些经常让工程师忘记了两个人的补偿.(至少对于int-twos-comps).简单的短语"0"必须适合某个地方." 令人难忘的是令人难忘的. (5认同)