关于Java中int类型数值范围的探究

今天在看原码、反码、补码、移码的知识,突然想到java中int的常量值和数据范围也是用2^n表示,那么这个值和原反补移有关系吗?
答案肯定是有的!
首先int类型在计算机中占4B,共32bit,那么就相当于它可处理的二进制数据就是32减去1个符号位,即31个数据位。原码和补码表示数据范围时,真值0表示为-0和+0两个,不符合自然数规律,而补码和移码表示真值0就只是一个0,所以
int的数据范围 -2^31   ~  2 ^31  - 1
即-2147483648  ~ 2147483647
同理,Integer常量池的范围也是因为先池化了1B的数据
-2^7 ~ 2 ^7 - 1,即-128~127

如有不对,欢迎大佬纠正补充!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值