小类型自动向大类型转换,
多种类型进行运算,系统会将数据转换为容量最大的那种数据类型再运算
二条路径:
可以记为,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,只要有小数参与,得到的值就是近视值 !