发布网友 发布时间:2022-05-09 07:03
共3个回答
热心网友 时间:2023-07-09 10:25
在Java中,类型转换分为两种:一是隐式类型转换,二是强制类型转换。
隐式类型转换是低精度数据向高精度数据转换,系统自动执行,不需要编程人员手动实现。
强制类型转换是高精度数据向低精度数据转换,需要编程人员手动实现转换。
精度由低到高的顺序为byte<short<int <long<float<double
所以在楼主的第一个问题中答案是byte short 转为int是都不需要强制转换的。
楼主的追问中提到的问题涉及到了Java的默认类型,在Java中整数型默认为int,
所以无论楼主定义的a b是byte还是short, 其a+b的结果都是默认为int的。而楼主是用byte或short型变量接收a+b的运算结果。又因为int的精度高于byte和short, 所以他们都需要进行强制转换,否则编译是会报错的。
//byte运算注意:在这个的强制类型转换中,因为涉及到了运算中类型提升问题,所以应当将a+b或w+s 整体用括号扩住,否则编译器仍会报错。
热心网友 时间:2023-07-09 10:25
并不需要强化啊。。
追问强制转型比如
byte a=1;
byte b=2;
byte x=(byte)a+b//这里需要加上(byte),如果把byte换成short就不需要强制转型,为啥呀
热心网友 时间:2023-07-09 10:26
基本数据类型的类型转换