基本数据类型之间的相互转换分为两种,分别是自动类型转换和强制类型转换。
当需要从低级类型向高级类型转换时,java会自动完成从低级类型向高级类型转换。低级类型是指取值范围相对较小的数据类型,高级类型是指取值范围相对较大的数据类型,如long相对于float是低级数据类型,但是相对于int类型是高级数据类型。在基本数据类型中除boolean外均可参与算数运算。
数据类型从低到高的排序:
byte b=75;
char c=‘c‘;
int i=123;
long l=12345L;
long result=b*c-i+l;
byte b=75;
char c=‘c‘;
int result=b+c;
如果需要把数据类型相对较高的数据或变量赋值给数据类型相对较低的变量,就必须进行强制类型转换。
例如:
int a=(int)7.5;
//a的最终结果为7
byte b=(byte)774;
//b的最终结果6
变量b的值为6,原因是整数774超出了byte型的取值范围,在进行强制类型转换时,表示整数774的二进制数的前24位被舍弃,所有最终赋值为变量b的数据是后8位的二进制数。
原文:https://www.cnblogs.com/lxy0/p/12561725.html