首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么java int类型在范围内有有效值-2,147,483,648到2,147,483,647?

为什么java int类型在范围内有有效值-2,147,483,648到2,147,483,647?
EN

Stack Overflow用户
提问于 2020-02-21 14:49:06
回答 1查看 300关注 0票数 0

我想知道为什么java int类型(32位签名)在范围内有有效值-2,147,483,648到2,147,483,647,而不是(-2,147,483,648到2,147,483,648)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-21 14:59:02

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

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

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

在1到2^31 (inclusive)

  • There范围内有2^31个数字,在范围内有2^31个数字-1下到-(2^31) (inclusive)

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

因此,把-2^31到+2^31之间的数字进行计算,我们得到了2^31 + 2^31 +1的值。即2^32 +1,这比在2^32状态下表示的值要多。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60341055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档