这个问题在这里已有答案:
我有关于在java中转换变量的问题 . 我有以下代码
byte b1 = 6;
byte b2 = 5;
byte bsum;
bsum = (b1 + b2); // (1)
代码需要做什么才能工作:
byte b1 = 6;
byte b2 = 5;
byte bsum;
bsum = (byte)(b1 + b2); // (2)
为什么在(1)情况下eclipse说不能从int转换为byte?当字节变量最多需要127时,为什么b1 b2会转到int?我很迷惑..
谢谢你的时间!
1 回答
通过specification
+
运算符返回int
,这就是你需要进行强制转换的原因 .(1)表示
b1 + b2
不能分配给byte
,因为int
的范围比byte
的范围宽 .