附上代码:
package com.wy.csdn;
/**
* 数值运算之算数运算符
*/
public class Test2 {
public static void main(String[] args) {
/**
* 例一:
*/
int a = 10;
double b = 12.5;
System.out.println(a+b);
/**
* 例二
*/
byte x =10;
byte y = 10;
System.out.println(x+y);
}
}
有人说了,这也没什么,确实没什么,就是个加法,可你知道它是怎么计算的吗?
我们都知道在java中,基本数据类型的取值范围大小排序为
byte < short < int < long < float < double
由此我们可以得出:隐式转换的两种规则:
如下:
1.取值范围小的和取值范围大的进行运算,小的会先提升为大的,再进行运算
这里就是 将a转变为double类型,再和b进行加法,此时如果将a+b赋值给c时候,c的数值类型就是double
2.byte、short、char 三种类型的数据在进行运算时,都会先提升为int类型,再进行运算
这里的例2就是,两个byte类型的数值在进行相加时候,会首先变为int类型,如果将x+y赋值给c时候,c的数据类型应为int
隐式转换总结:
1.取值范围:byte < short < int < long < float < double
2.什么时候进行转换:
数据类型不一致时,不能进行计算,需要转成一样的才可以计算
3.转换规则1:
取值范围小的,和取值范围大的进行计算,小的会先提升为大的,再进行运算
4.转换规则2:
byte、short、char三种数据进行运算时,先提升为int,再进行运算