日期:2014-05-20  浏览次数:20627 次

byte b=2;b=b+1;可以通过b=b-1不行,这是为什么?
byte b=1;
b=b-1;编译错误提示:可能损失精度
而b=b+1却没问题。

它们遇到的类型转换不是一样的吗?

------解决方案--------------------
这两个都是不行的。

过程是这样的。

b = b + 1

1默认为int类型,b自动转型为int与1做加法,结果是int类型的。把int类型赋给byte类型b.

所以出现错误。
------解决方案--------------------
byte相计算的时候如果不进行强制转换,都会编译错误的,因为:byte类型运算的时候会自动转换为int类型
------解决方案--------------------
估计是你没有保存,必须进行类型转换。

b=(byte)(b+1);

或者

b+=1;

减法同理