java中的int的取值范围如何计算???

是它的范围从-128到127的计算。这个是怎么计算的?... 是它的范围从-128到127的计算。这个是怎么计算的? 展开
 我来答
黄金变钻石
2019-02-12
知道答主
回答量:2
采纳率:0%
帮助的人:3082
展开全部

1、java中int的取值范围为-2147483648到+-2147483648。

2、首先jdk中定义int占4个字节32位,32位就是jvm仅仅给分配32个格子的空间,用以存放数据。

3、计算机中用0和1存放数据。那么,32个格子中放满0或1的方法,有2的32次方种。

4、但是java中int有正负之分,所以32个格子中占用一个格子标识正负,仅仅能用31个格子来标识数值。最后int能标识的最大/最小数字是:2的31次方即+/- 2147483648。取值范围即为二者之间。

扩展资料:

  1. 一字节表示八位,即:1byte = 8 bit;

  2. int: 4byte =  32 bit 有符号signed范围:2^31-1 ~ -2^31即:2147483647 ~ -2147483648无符号unsigned范围:2^32-1 ~ 0即:4294967295 ~ 0

  3. long: 4 byte = 32 bit 同int型

  4. double: 8 byte = 64 bit 范围:1.79769e+308 ~ 2.22507e-308

  5. long double: 12 byte = 96 bit 范围: 1.18973e+4932 ~ 3.3621e-4932

float: 4 byte = 32 bit 范围: 3.40282e+038 ~ 1.17549e-038

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
罗辑有常识
推荐于2019-08-23 · TA获得超过939个赞
知道答主
回答量:23
采纳率:0%
帮助的人:7227
展开全部

java中的int的取值范围计算实现思路如下:

jdk中定义int占4个字节 ===> 32位(后面全部的计算都是以此为根据的)32位就是jvm仅仅给分配32个格子的空间,用以存放数据。

而计算机中用0和1存放数据。那么,32个格子中放满0或1的方法就有2的32次方种。所以,这32个格子中。或者说32位的空间能标识10进制的数字:

第一种推算法:将二进制最大的数字(32个1)转换成10进制,即 4294967296;

另外一种推算法:既然有2的32次方种算法,那么依照10进制最大的数就是2的32次方。即4294967296。

不过,这样的计算的是无符号。即正数。可是java中int有正负之分。所以32个格子中占用一个格子标识正负。所以仅仅能用31个格子来标识数值:其中,x为0、1来标识正负。

即最后int能标识的最大/最小数字是:2的31次方:+/- 2147483648。

扩展资料

1、使用推算法:将二进制最大的数字(32个1)转换成10进制,即 2147483648。

2、还有一种推算法:既然有2的31次方种算法,那么依照10进制最大的数就是2的31次方。即2147483648。

3、Java的位运算:移位运算,将整个数整体向左或者右移动。如果是向左移,则是低位补0。如果是向右移,分两种情况。如果是0和正数,则高位补0。如果是负数,则高位补1。

参考资料:百度百科—INT

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lifeads213sad
推荐于2019-09-10 · TA获得超过2125个赞
知道答主
回答量:25
采纳率:0%
帮助的人:4131
展开全部

1、java中int的取值范围为-2147483648到+-2147483648。

2、首先jdk中定义int占4个字节32位,32位就是jvm仅仅给分配32个格子的空间,用以存放数据。

3、计算机中用0和1存放数据。那么,32个格子中放满0或1的方法,有2的32次方种。

4、但是java中int有正负之分,所以32个格子中占用一个格子标识正负,仅仅能用31个格子来标识数值。最后int能标识的最大/最小数字是:2的31次方即+/- 2147483648。取值范围即为二者之间。

扩展资料

1、也可以使用所谓的推算法:将二进制最大的数字(32个1)转换成10进制,即 2147483648。

2、还有一种推算法:既然有2的31次方种算法,那么依照10进制最大的数就是2的31次方。即2147483648。

3、Java的位运算:移位运算,将整个数整体向左或者右移动。如果是向左移,则是低位补0。如果是向右移,分两种情况。如果是0和正数,则高位补0。如果是负数,则高位补1。


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ykzhen
推荐于2017-09-10 · TA获得超过5298个赞
知道大有可为答主
回答量:1303
采纳率:0%
帮助的人:1191万
展开全部
这个问题是可以自己解决的,教你点方法,不用专门求人的,

可以用下面两条Java句子解决:
System.out.println(Integer.MAX_VALUE);//打印最大整数:2147483647
System.out.println(Integer.MIN_VALUE);//打印最小整数:-2147483648
相应的浮点数:
System.out.println(Float.MAX_VALUE)
System.out.println(Float.MIN_VALUE)
双精度:
System.out.println(Double.MAX_VALUE)
System.out.println(Double.MIN_VALUE)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
方杭尽
2007-06-25 · TA获得超过1万个赞
知道大有可为答主
回答量:1296
采纳率:0%
帮助的人:679万
展开全部
首先java中int的取值不是从-128到127,
而是从-2147483648到2147483647 2的31次方
至于为什么那么计算范围,找本计算机原理的书看下
这个不是一句两句话的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式