黑马程序员技术交流社区

标题: 【上海校区】Java中byte类型的取值范围由来 [打印本页]

作者: 小影姐姐    时间: 2018-5-11 11:24
标题: 【上海校区】Java中byte类型的取值范围由来
本帖最后由 上海分校-小影 于 2018-5-11 11:28 编辑

Java中byte类型的取值范围由来
1、前言
学习java语言的过程中,我们都知道byte类型的取值范围是:-128 ~ 127
那么byte类型的取值范围由来是什么呢,下面我们来了解一下。

2、计算机的存储单元
Java语言中变量是存储数据的,而变量中所存储的数据是存放在内存中所开辟的一块空间下(这块空间相当于一个小容器)。

那么计算机内存中要开辟多大的空间来存储数据呢?
计算机会根据变量的数据类型,换算为存储单位去内存中开辟相应的空间
在计算机中用来存储数据的最小存储单位叫"字节"(byte),字节是由连续的8个比特位(bit)组成。比特位:0或1。
除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:
1byte = 8bit            1个字节 = 8 个二进制数位   
1kb = 1024 byte
1mb = 1024 kb
1gb = 1024 mb
1tb = 1024 gb

3、byte类型介绍
Java语言中的8种基本数据类型可以划分为整型、字符型、布尔型、浮点型4大类型,而整数类型又可以分为byte、short、int、long四种,分别占用的存储空间为:
[td]
整数类型
内存占用空间
byte        1个字节
short        2个字节
int        4个字节
long        8个字节`

4、byte类型取值范围
结合前面讲解的知识点,可以获得以下结论:
byte类型,在内存中开辟1个字节的存储空间
1byte = 8bit    相当于: 1个字节 = 8个二进制数位
8个二进制数位就是: XXXX  XXXX      X表示0或1

byte类型中存储的是一个字节数据,那就表示byte类型应该是8个由0或1组成的。例:0111 1111

通过计算器我们可以很清楚的看到二进制数据01111111对应的十进制是127。这里大家注意下,在这个8位二进制数中存在一个0,此处的0表示的是符号位,代表的正数。

说明:2进制数位的最高位是符号位。最高位为1表示负数,最高位为0表示正数。


现在可以确定byte类型的最大值上限为:127
清楚了byte类型的最大值上限了,那么最小值下限是什么呢?
其实很简单,只需要把01111111反过来变为:10000000即可。
1是最高位,也是符号位,表示负数。


5、小结
1、byte类型在java中属于最小的存储数据类型
2、byte类型仅占用一个字节空间大小
3、byte类型的取值范围是 -128 ~ +127









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2