有两个byte类型的数 a、b,a=120,b=-10,b-a的值是多少!最好把计算的过程也说下!谢谢了!!!!

解决方案 »

  1.   

    用代码测试一下就知道了 
    byte的范围有限(-127~128)
    你这个值等于 -130已经超过了这个范围 所以得到的答案是不对的public class testByte { public static void main(String[] args) {
    byte a =120;
    byte b = -10;
    byte sum;
    sum = (byte) (a-b);
    System.out.println(sum); }}
      

  2.   

    class Jianfa{
          public static void main(String []args){
               byte a=120;
               byte b=-10;
               int result=b-a;
               System.out.println(result); 
    }
    }
    必须 result为int ,才是-130
    如果为 byte则会损失精度,会有内存溢出,这两个类型的长度我就不解释了
      

  3.   

    如果a,b,result都是byte类型的,这里出现了溢出,是不能通过编译的。编译器会提示你这里会损失精度~!
    如果result是int型结果就是-130.
      

  4.   

    我这里测试结果  int result   =0 了
      

  5.   

    byte a=120;
    byte b=-10;
    System.out.println(b-a);
    这样输出的结果就是-130,因为b-a的结果会被视为int型的
    如果你用 byte c=b-a;这样编译是通不过的因为b-a运算的结果被视为int型
    如果你 byte c=(byte)b-a这样输出的结果就是-126 这是因为有溢出,编译器会截断高位。