javabyte的范围
‘壹’ java中byte类型的介绍。 谢谢
1、在Java中,byte类型的数据是8位带符号的二进制数。最高位表示正负,0为正,1为负。
2、java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte。
3、正数的最高位都是 0 ,正数的值就是二进制表示的值。
4、负数的最高位都是 1 ,负数的值是 取反后加一 然后加个负号得到的值。
(1)javabyte的范围扩展阅读
1、java基本数据类型
JAVA中一共有八种基本数据类型,分别是byte、short、int、long、float、double、char、boolean。
2、java各数据类型取值范围
byte,整型,1个字节,范围:-2的7次方 ~ 2的7次方-1;
short,整型,2个字节,范围:-2的15次方 ~ 2的15次方-1;
int,整型,4个字节,范围:-2的31次方 ~ 2的31次方-1;
long,整型,8个字节,范围:-2的63次方 ~ 2的63次方-1;
float,浮点型,4个字节,范围:3.402823e+38 ~ 1.401298e-45;
double,浮点型,8个字节,范围:1.797693e+308~ 4.9000000e-324;
char,文本型,2个字节,范围:0~2的16次方-1;
boolean,布尔型,1个字节,范围:true/false;
参考资料
网络-java字符型
‘贰’ java中byte变量的范围问题
byte是一个字节,其中有8位,取值范围为
-128~+127,闭区间
因为有符号,所以符号位占一位
-128的二进制位
1000
0000
也就是0X80
这个不叫溢出。。是不是你看错了
+127就是
0111
1111
也就是0X7F。。
‘叁’ java中byte是什么类型
java中byte是字节型。
java byte作为最小的数字来处理的,因此它的值域被定义为-128~127,byte的用作计数的时间远少于用表达基本内存单元的时间。
比如从stream里读入一个双字节字符,我们先收到2个byte。为了把byte转换成适当的形式,需要对byte值做一些比较,比如判断字符集要比较其是否在某个编码范围内。
(3)javabyte的范围扩展阅读:
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。
例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。
‘肆’ JAVA基本数据类型所占字节数是多少
在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型。
一个字节等于8个bit,java是跟平台无关的。
(1)整型:
其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)。
可以看到byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。
在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的。
同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。
(2)浮点型:
float和double是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同
float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节
double 1.797693e+308~ 4.9000000e-324 占用8个字节
double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。
浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。
(3)boolean型(布尔型):
这个类型只有两个值,true和false(真和非真)
boolean t = true;
boolean f = false;
(4)char型(文本型) :
用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容
字符的存储范围在u0000~uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1,
char c = ' 1 ';
我们试着输出c看看,System.out.println(c);结果就是1,而如果我们这样输出呢System.out.println(c+0);
结果却变成了49。
(4)javabyte的范围扩展阅读
基本类型之间的转换
将一种类型的值赋值给另一种类型是很常见的。在Java中,boolean 类型与其他7中类型的数据都不能进行转换,这一点很明确。
但对于其他7种数据类型,它们之间都可以进行转换,只是可能会存在精度损失或其他一些变化。
转换分为自动转换和强制转换:
自动转换(隐式):无需任何操作。
强制转换(显式):需使用转换操作符(type)。
将6种数据类型按下面顺序排列一下:
double > float > long > int > short > byte
如果从小转换到大,那么可以直接转换,而从大到小,或char 和其他6种数据类型转换,则必须使用强制转换。
‘伍’ 自学JAVA 有点不明白 为什么说byte的取值范围是+127到—128
byte占一个字节空间,最高位是符号位,剩余7位能表示0-127,加上符号位的正负,就是-127至+127,但负0没必要,为充分利用,就用负零表示-128(即原码1000,0000)。(计算机转补码后存储)
‘陆’ 关于java的byte取值范围,一定给分
关于byte字节范围理解
首先规定二进制的头位为符号位,0为正,1为负
符号位用红色标记一下
则下面的数01111111和00000000代表:
0 1 1 1 1 1 1 1 = + 127 =2^0+2^1+2^2+2^3+2^4+2^5+2^6= 2^7-1(公式就不推啦)
0 0 0 0 0 0 0 0 = + 0
正数已经规定好了而且二进制计算也对应相应的数计算(如1+1=2对应 00000001+00000001=00000002)
这下就差规定负数了
还剩下 1 0000000到1 1111111的代表没有规定
1 1 1 1 1 1 1 1 =?
1 0 0 0 0 0 0 0 =?
这里就发现二进制0 0000000代表0了,那1 0000000代表什么?代表 -0 ?这样不是浪费资源而且不合理?
肯定有人想那 1 0000000规定-1 ,1 1111111规定-128不就好了嘛。
但是这就不符合对应的数计算啦 (如0-1代表0 0000000-0 0000001=?等于-1吗?明显感觉哪里不合理啊)
可以看到正数计算都是符合对应的数计算,那么0 1111111代表的127在加一会怎么样?
可以看到0 1111111+0 0000001=1 0000000
那么1 0000000代表着什么数呢?
程序员就规定这个数代表着-128,那么怎么来的呢。
先从0 0000000为突破口。意外发现
1 1111111(8位)+0 0000001(8位)=1 0 0000000(9位)而最头位不存储的话只剩下0 0000000,而这个数不是代表着0吗。那么只有-1+1等于0了。所以规定了1 1111111代表着-1.
-1-1=-2(1 1111110)
-2-1=-3(1 1111101)
-3-1=-4(1 1111100)
·························。。。。。。。。。。。
-127-1=-128(1 0000000)
所以就规定了1 0000000为-128
结论就是:
0 1 1 1 1 1 1 1 +127
0 0 0 0 0 0 0 0 +0
1 1 1 1 1 1 1 1 -1
1 0 0 0 0 0 0 0 -128
这样计算就符合了对应代表数的计算,但是负数的二进制就没法从原来的公式推出来了
于是有了补码
补码原则:符号位不变,先减一,其它位再相反可以了;
补码如:
1 1 1 1 1 1 1 1 符号位不变
1 1 1 1 1 1 1 0 减一
1 0 0 0 0 0 0 1 再相反位
这个就可以用原来的公式推出代表着-1啦,以上就是本人自己的理解啦,主要为了简明易懂。其次符号位算入其中不严谨,可能有错还望指出。
‘柒’ java byte类型为什么是(127到-128)
一个btye类型占8个位,按照2的八次方来乘积实际等于256,但因为第一位表示的正数还是负数,所以实际是2的7次方来算,所以是127到-128
‘捌’ java中byte[]是怎么意思
byte即字节的意思,是java中的基本类型,用心申明字节型的变量。
通常在读取非文本文件时(如图片,声音,可执行文件)需要用字节数组来保存文件的内容。
在下载文件时,也是用byte数组作临时的缓冲器接收文件内容。所以说byte在文件操作时是必不可少的。不管是对文件写入还是读取都要用到。
(8)javabyte的范围扩展阅读:
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Java语言是一门随时代快速发展的计算机语言程序,其深刻展示了程序编写的精髓,加上其简明严谨的结构及简洁的语法编写为其将来的发展及维护提供了保障。
由于提供了网络应用的支持和多媒体的存取,会推动Internet和企业网络的Web的应用。
‘玖’ java中byte变量的范围问题
byte是一个字节,其中有8位,取值范围为 -128~+127,闭区间
因为有符号,所以符号位占一位
-128的二进制位 1000 0000 也就是0X80 这个不叫溢出。。是不是你看错了
+127就是 0111 1111 也就是0X7F。。