千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java数据类型的取值范围

java数据类型的取值范围

来源:千锋教育
发布人:wjy
时间: 2023-03-21 14:11:00 1679379060

  java数据类型的取值范围

  一、 取值范围

  我们在讲解8种基本类型时,大家会发现,不同的类型大小不同,也就是它们有不同的取值范围。接下来给大家总结一下这几种不同类型的取值范围。

java数据类型的取值范围1

  二、 原理剖析

  有的初学者可能不理解,为什么不同数据类型的取值范围大小不一样?比如同样都是整数,为什么有的范围大有的范围小?壹哥简单给大家举个例子。计算机的每个内存单元,都有自己的内存地址,一般都是从0开始编号。而每个内存单元都可以看作是一个房间,房间有大有小,并且房间的类型不同,有的是大床房,有的是标间,有的是总统套房。另外内存地址就是房间的门牌号,方便我们找到对应的房间。

java数据类型的取值范围2

  不同的数据类型之所以取值范围不同,就好比每种类型都是不同的房型,有大有小,如下图所示:

java数据类型的取值范围3

  这些不同的类型,占用的字节大小不同,所以取值范围自然也不一样。这个时候就有人发出疑问了:byte类型取值范围为什么是127到-128?

  首先,需要理解byte类型是一种8位二进制补码整数数据类型,它可以表示的整数范围为-128到127。为了更好地理解这个范围,可以将byte类型的二进制表示方式进行分析和绘制。在byte类型中,最高位为符号位,表示正数或负数。当最高位为0时,表示一个正数,当最高位为1时,表示一个负数。

  对于正数,byte类型使用无符号二进制表示,最高位为0,其余位表示数值大小。例如,十进制数10的二进制表示为00001010,因为它是一个正数。对于负数,byte类型使用补码二进制表示,需要先将其绝对值取反,然后加1。例如,十进制数-10的二进制表示为11110110,这个值是通过将绝对值10的二进制表示00001010取反得到的,然后再加1得到的。

  因此,byte类型的取值范围为从-128到127,如下图所示:

java数据类型的取值范围4

  注意:这里的最高位是符号位,表示正数或负数,所以当最高位为1时,表示负数,其余位的值需要按位取反再加1才能得到该负数的绝对值。

  那么现在大家明白了吗?

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT