首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

byte b=2;b=b+1;可以通过b=b-1不行,这是为什么?该如何处理

2012-03-28 
byte b2bb+1可以通过bb-1不行,这是为什么?byte b1bb-1;编译错误提示:可能损失精度而bb+1却没问题

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;

减法同理

热点排行