这是代码,最后一行无法编译出来的结果是int?所以,我可以 解决java进程中的每个非整数类型作为算术中的整数? 我正在向所有人学习英语,谢谢。
byte a=0;
for(int i=0;i<128;i++){
a=(byte)i;
}
byte b=1;
byte c=0;
c=b+a;
System.out.println(b);
答案 0 :(得分:1)
在将两个操作数转换为shorts
并导致bytes
之后,两个int
或int
之间的java中的添加操作发生。因此,您需要将结果转换为byte
,因为它是有损转换。见this
答案 1 :(得分:0)
您必须将a
或a
和b
添加的结果投射到一个字节,因为a
是一个整数及其值可能不适合一个字节
例如:
c = (byte) ((byte) a + b);
或
c = (byte) (a + b);
这样,b
被隐式转换为整数,然后结果再次转换为一个字节。