1.
2.赋值时需要注意的
数据类型 | 所占位数 | 范围 |
byte | 8 | -128~127 |
short | 16 | |
char | 16 | |
int | 32 | |
long | 64 | |
float | 32 | |
double | 64 | |
boolean | 8 |
byte b = 1; 正确
short s = 100; 正确
long l = 123456;错误,末尾要加上字母L
byte b=b+5; 错误
byte b=1;b+=5;正确
3.类型转换图解
其中有一点需要注意为什么long类型占64位,float占32位,却可以由long转为float呢?
因为long类型的范围是-2^64“ 到”2^64 -1。
而float在内存中占4个字节,共32位,但是浮点数在内存中是这样的:
V=(-1)^s * M * 2^E
667x190
浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。
其中第1位,符号位,即S。
接下来的8位,指数域,即E。
剩下的23位,小数域,即M,M的取值范围为[1,2)或[0,1)。
也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大。