两个byte类型数据相加为什么会报错
更新时间:2023-05-25 21:55
byte b=4;
byte b1=3;
byte b2=7;
b=b1+b2; //这样是计算不出b,是错误的
b=b1+7; //这样也是计算不出b
byte b=3+7; //怎么这样又可以计算?
byte a=1; a=a*2; System.out.println(a); 在java中,类型为byte,short,char类型的变量在运算的时候会自动转为int类型,在式byte a=1;中变量a为byte类型,但在式a=a*2;中a*2为int类型,而a还是byte类型,所以会报精度损失,将a=a*2;这个式子改为a=(byte)a*2;即可! Java代码编译字节码后,byte short char boolean等基础类型都转换成int进行计算 b=b1+b2; //b1+b2得到了一个int的值所以需要强制转换 b=(byte)b1+b2;
上一篇:自动类型转换 下一篇:计算机原码、反码、补码详解