Java基础语法6-自动类型提升计算
基本数据类型的运算的规则
1.自动类型提升
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
说明:此时的容量大小指的是,表示范围的大和小。比如:float容量要大于long的容量
byte 、char、short --> int --> long --> float --> double
特别的:当byte、short、char做运算时结果为int型。
byte a = 2;
int b = 129;
//编译不通过
byte c = a + b;
int d = a + b;
long e = a + b;
float f = a + b;
double g = a + b;
2.强制类型转换
说明:自动类型提升运算的逆运算
1.需要使用强转符:()
2.可能会导致精度损失
double b = 12.3;
int t = (int)b;//截断小数部分
//精度损失举例
int a = 127;
byte c = (byte)a;
System.out.printLn(c);//-128
3.变量运算时的特殊情况
//编码情况1:
long b = 123;//会自动认为他是int型,如果超出int的范围,会报错
float f = 12.3;//编译不通过
//编码情况2:
//整型常量默认为int
//浮点型常量默认为double
byte c = 12;
byte d = c + 1;//编译失败