2020-12-15

本文详细介绍了Java中整数类型如byte、short、int、long的取值范围。通过理解二进制表示和符号位的概念,可以清晰地计算出每个类型的最小和最大值。例如,byte类型由于一个符号位,实际用于存储数值的位数只有7位,因此其范围是-128到127。正数范围比最大值少1是因为0被视为正数。
摘要由CSDN通过智能技术生成

Java数据类型的范围计算方式

<***我们知道除了布尔类型和字符类型的数据类型都有一个指定的数值范围,这种范围在某些教材上的阐述或许并不详尽,亦或者在思路出错的情况下很难被理解。因为在此之前我也很是疑惑,由此做以具体介绍。***>
整数类型最小的单位是byte类型,就以它举例。它是一个字节,八位的数据类型。根据书本和资料介绍它的取值范围为-128~127。(可能有人会告诉你一大串解释,以至于很难理解。但实际上它的原理很简单,不过有时方向弄错了。)想了解它的储存原理我们要知道字节和位的概念。字节,实际上就是byte,它是计算机的一个储存单位,而位则是字节的一个单位,一个字节八个位组成。其中位即使储存数据0和1的容器。一个数据的最高位(整数和浮点类型)前面肯定会有一个位,而且是最高位是用来储存符号的。因而一个完整的数据是符号加上数值的,而符号会整整占据一个最高位称为符号位。因此对于位数位数位数为8的byte实际上来说存储数据的只有7位,同理short类型真正存储数据的只有15位,long类型有31位…
此时我们表示出一个数据的二进制数据为ox0 0000111,这里第一个0表示这个数为正数,如果是1则表示负数。而后面7为表示这个数值是7,所以这个数为+7。此时我们从右边的第一个1开始向左看,第一个位的最大容量为2,第二个容量为4,第三个位8…到最后一个也就是第七位的时候,它的最大容量已达到了128。此时我们把所有位的容量都加起来得到了256个容量(简单的数学公式即为范围=负的二的位数的减一次方至二的位数的减一次方减一),但是这其实包含了正数和负数以及零三种值,并且其中的零还被归于了正数行列之中,由此我们发现在在正数里正数只有127,而负数却有128,正因为正数将0带入其中。所以正数范围总是要减去一个1.
重点:
总而言之上面可以直接跳过,就是零被列在了正数里,所以正数要减一。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值