javachar取值范围是_Java中数据类型的取值范围
整数数据类型的取值范围
我们都知道计算机的底层是⼆进制,也知道不同的整数类型存储值的范围不同,可这些数值在计算机底层是怎样存储的呢?数值范围⼜是怎么计算出来的呢?
下⾯以java来进⾏举例:
byte1个字节 (8bit)-2^7~2^7-1
short2个字节 (16bit)-2^16~2^16-1
int4个字节 (32bit)-2^31~2^31-1
long8个字节 (64bit)-2^63~2^63-1
整数数据类型其中最⾼位是符号位,⽤来表⽰正数或负数。其中0⽤来表⽰正数,1⽤来表⽰负数。
那么,剩下的位就是数值位,⽤来表⽰数值⼤⼩的。
那么byte的可⽤范围就是7位了:
从 000 0000 ~ 111 1111 转换成⼗进制也就是从 0 ~ 127
如果加上符号位呢?
1111 1111 ~ 0111 1111 转换成⼗进制是从 -127 ~ 127
可是如果我们的 111 1111 还能再进⼀位呢?
那不就是变成 1000 0000了吗,那这个数到底是⽤来表⽰-128还是128呢?
因为符号位的存在,如果让它来表⽰128的话,就乱套了,所以我们就规定只⽤它来表⽰正的128。
所以⼀个字节能表⽰的最⼤范围是从 -2^7 ~ 2^7-1 ps:2^7是128
⽆符号类型的取值范围(char)
Java中的char类型是⽤两个字节来表⽰,使⽤的是Unicode编码,所以可以正常表⽰中⽂字符。
两个字节⼀共⼗六位,⼜因为没有符号位,都是数值位的原因,所以表值范围是从:
unicode文件格式0000 0000 0000 0000 ~ 1111 1111 1111 1111 1111 1111 (65535)
所以char类型的表值范围是从 0 ~ 2^16-1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论