byte b=1;
b=b-1;编译错误提示:可能损失精度
而b=b+1却没问题。它们遇到的类型转换不是一样的吗?

解决方案 »

  1.   

    这两个都是不行的。过程是这样的。b = b + 11默认为int类型,b自动转型为int与1做加法,结果是int类型的。把int类型赋给byte类型b.所以出现错误。
      

  2.   

    byte相计算的时候如果不进行强制转换,都会编译错误的,因为:byte类型运算的时候会自动转换为int类型
      

  3.   

    估计是你没有保存,必须进行类型转换。b=(byte)(b+1);或者b+=1;减法同理