为什么java int类型的有效值在-2147483648到2147483647之间



我想知道为什么java int类型(32位有符号(的有效值在-2147483648到2147483647之间,而不是在(-2147483688到214748364(之间?

现代计算机中数字的主要表示形式是某种形式的二进制表示。它由固定数量的位组成,这些位的值为0或1。在Java中,int指定使用32位的二进制表示。

一个32位二进制表示可以有2^32个状态。(这是一个数学事实。它可以从第一性原理中得到证明。(

考虑-2^31到+2^31之间的数学整数:

  • 范围为1到2^31(含(,共有2^31个数字

  • 在-1到-(2^31((含(范围内有2^31个数字

  • 零值不在上述任何一个范围内。

所以计算从-2^31到+2^31的数字,我们总共得到2^31+2^31+1个值。这是2^32+1,比2^32状态中可以表示的值更多。

你的建议在数学上是不可能的。

相关内容

  • 没有找到相关文章

最新更新