byte类型?
1、在Java中,byte类型的数据是8位带符号的二进制数。最高位表示正负,0为正,1为负。
2、java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte。
3、正数的最高位都是 0 ,正数的值就是二进制表示的值。
4、负数的最高位都是 1 ,负数的值是 取反后加一 然后加个负号得到的值。
byte可以存储单个字符吗?
是的,byte可以存储单个字符。在Java中,byte是一种数据类型,可以用来存储整数值,范围为-128到127。由于ASCII码是使用8位(即1个字节)来表示字符的,因此可以使用byte来存储单个字符。
byte数据是什么样?
byte即字节的意思,是java中的基本类型,用心申明字节型的变量。
通常在读取非文本文件时(如图片,声音,可执行文件)需要用字节数组来保存文件的内容,在下载文件时,也是用byte数组作临时的缓冲器接收文件内容。所以说byte在文件操作时是必不可少的。不管是对文件写入还是读取都要用到。
Java中Byte的范围是如何计算的?
在说byte之前,我们先来说说比特,比特是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量。一般来说,n比特的信息量可以表现出2的n次方种选择。而byte意为“字节”,是计算机文件大小的基本计算单位。1byte=8bits,两者换算是1:8的关系。1bit 只能有一个值,0 或者 1。
在《Head First Java》中的描述byte(基本数据类型,装配类型为Byte)作为Java中4中基本整数类型的一种,其它三种是long、int、short。通过前面的了解,byte是1个字节,也就是8位,以杯子类比,每种整型类型变量有固定的位数(杯子大小):byte,8bits,-128~127;short,16bits,-32768~32767;int,32bits,-2147483648~2147483647;long,64bits,-很大~+很大。
具体的关于byte的计算方式,推荐以下两种,混合着进行理解记忆。
第一种是机器内存储结构的分析:
在计算机内,定点数有3种表示法:原码、反码和补码
[原码]二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
计算机数据是用补码表示的,正数的补码就是它的原码,而负数的补码是将其原码(取绝对值后的原码)取反加1得到的。
第二种是byte概念意义上的理解:
1.确定byte是1个字节,也就是8位
2.最大的应该是0111 1111,因为第一位是符号位,0表示正数
3.最小的应该是1000 0000(1111 1111是是负数-1的补码)
4.0111 1111即127
5.1000 0000按照上面的解释为先减一,得到0111 1111,然后按位取反得到1000 0000,该结果为欲求负数的绝对值,所以结果是-128(和概念反着来求出该负数)。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。
在这里我们需要先了解另一个单位:bit “比特”,bit是计算机进行数据存储的最小单位,计算机内部利用二进制存储数据,一bit(比特)就代表一位二进制。即一个bit就代表一个0或1。
而Byte(“字节”)是计算机进行数据存储的基本单位。一Byte有八位二进制也就是1Byt = 8bit
数据的存储又分为有符号和无符号数,有符号数二进制的最后高代表符号,0代表+(正),1代表-(负),如:有符号数011 转换为十进制为2^0+2^1=3,无符号111转换为十进制则为-3。(有下划线的数字代表符号位,后面同样如此)
然后我们开始正式介绍Byte范围的计算
当Byte无符号时
Byte的范围可以由二进制表示为 0000 0000 ~ 1111 1111,
将二进制转化为十进制:
0000 0000 = 0;
1111 1111 = 2^0+2^1+2^2+2^3+2^4+2^5+2^6+2^7 = 255;
所以Byte的取值范围为 0 ~255 。
当Byte有符号时
由于最后一位变为了符号位 所以0 1111111成了最大的数。
将二进制转化为十进制:
0 1111111 = 2^0+2^1+2^2+2^3+2^4+2^5+2^6 = 127;
负数需要用补码表示,1 1111111的绝对值取反得到0000000 转换为十进制为 0加一取反则为补码 :-1
将1 0000000的绝对值取反得到11111111 转换为十进制为 127
再加一取反为 -128
所以Byte有符号时的取值范围为 -128~127
java采用的有符号存储,所以java中Byte的取值范围采用有符号时计算。

