燃了很久的问题,拔刀吧,
一.byte
byte数据类型占8位,也就是一个字节。
1000 0000 ~ 0111 1111
也就是
-2^-7 ~ 2^7-1
-128 ~ 127
注意:最高为是符号位
二.short
short数据类型占16位,也就是两个字节。
1000 0000 0000 0000 ~ 0111 1111 1111 1111
也就是
-2^-15 ~ 2^15-1
-32768 ~ 32767
三.int
int数据类型占32位,也就是四个字节。
1000 0000 0000 0000 0000 0000 0000 0000
~
0111 1111 1111 1111 1111 1111 1111 1111
也就是
-2^31 ~ 2^31-1
-2147483648 ~ 2147483647
四.long
long数据类型占64位,也就是8个字节。
同上面的,也就是
-2^63 ~ 2^63-1
-9223372036854775808 ~ 9223372036854775807
公式:有几位范围就是:-2^(n-1) ~ 2^(n-1)-1
五.char
Java中的char类型是用两个字节来表示,使用的是Unicode编码,所以可以正常表示中文字符。
两个字节一共十六位,又因为没有符号位,都是数值位的原因,所以范围为:
0000 0000 0000 0000 ~ 1111 1111 1111 1111
也就是