小类型自动向大类型转换,
多种类型进行运算,系统会将数据转换为容量最大的那种数据类型再运算
二条路径:
可以记为,byte,short,char运算时候都会转换为int再进行运算
char和byte以及short之间不会转换
-// 1、byte-》short-》int
- //2、char-》int
- int num = 'a';//char -> int
double d = 66; //int -> double
System.out.println(num);//97
System.out.println(d1);//66.0
这三个只要参与运算就会自动转换为int!!!
byte b1 = 1;
byte b2=2;
short s1 = 1;
//short s2 = b1 + s1;//报错, b2 + s1 => int
int s2 = b1 + s1;//对 b2 + s1 => int
强制类型转换
int a=(int)1.9 /
10/4是2,提升精度--》10.0/4=2.5 因为int会舍弃小数,double d=10/4结果是2.0;int 2赋给double;
取模的本质:
余数的符号只与在前面哪个数的符号有关!
a % b=a-a/b*b -->10%-3 //结果是1 ,10-10 / -3 * -3-->=1 取模符号放在后面时候可能会出现这情况 ,小数取模要注意,会转为int --》a-int a/b*b,只要有小数参与,得到的值就是近视值 !