1.转换规则
精度高的数据类型就像容量大的杯子,可以放更大的数据
精度低的数据类型就像容量小的杯子,只能放更小的数据
小杯子往大杯子里倒东西,大杯子怎么都放得下
大杯子往小杯子里倒东西,有的时候放的下,有的时候就会有溢出
需要注意的一点是
虽然short和char都是16位的,长度是一样的
但是彼此之间,依然需要进行强制转换
2.低精度向高精度转换
低精度向高精度转换 是可以正常转换的
换句话说,int比较小,要放进比较大的long,随便怎么样,都放的进去
3.高精度向低精度转换
把int类型的数据转成为byte类型的数据,
是有风险的
有的时候是可以转换的 ,比如 b = i1 (i1=10);
有的时候不可以转换 比如 b= i2 (i2=300) 因为放不下了
编译器就会提示错误
这个时候就只能采用 强制转换 ,强制转换的意思就是,转是可以转的,但是不对转换之后的值负责。 风险自担,后果自负
有的时候是可以转换的 ,比如 b = i1 (i1=10);
有的时候不可以转换 比如 b= i2 (i2=300) 因为放不下了
编译器就会提示错误
这个时候就只能采用 强制转换 ,强制转换的意思就是,转是可以转的,但是不对转换之后的值负责。 风险自担,后果自负
//查看一个整数对应的二进制的方法:
System.out.println(Integer.toBinaryString(i2));
【
整型和整型进行运算的时候,如果两边的值都是小于或者等于int的,那么其结果就是int。
short a = 1;
short b = 2;
a+b?
所以a+b之后得到的类型是int
】
以上来源:
基本变量类型的类型转换