整数数据类型的取值范围
我们都知道计算机的底层是二进制,也知道不同的整数类型存储值的范围不同,可这些数值在计算机底层是怎样存储的呢?数值范围又是怎么计算出来的呢?
下面以java来进行举例:
byte 1个字节 (8bit) -2^7~2^7-1
short 2个字节 (16bit) -2^16~2^16-1
int 4个字节 (32bit) -2^31~2^31-1
long 8个字节 (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编码,所以可以正常表示中文字符。
两个字节一共十六位,又因为没有符号位,都是数值位的原因,所以表值范围是从:
0000 0000 0000 0000~1111 1111 1111 1111 1111 1111(65535)
所以char类型的表值范围是从0~2^16-1
Java整数类型:http://www.bjpowernode.com/tutorial_java_se/74.html
以上就是长沙牛耳教育java培训机构的小编针对“Java中整数型的取值范围”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。