public byte count(byte b1,byte b2){
         return _________;
}空格里为什么要填(byte)(b1-b2)?;   为什么不能填 b1-b2 ?

解决方案 »

  1.   

    -(减法运算)会自动将byte提升为int,再将int转换为byte时,需要强制转换。
      

  2.   

    另外再问个问题
    float f = 5+5.5;
    为什么也不能通过编译?
      

  3.   

    java浮点型默认的是double 运算后需要强制转换成float型,跟byte一样
      

  4.   

    5默认是int
    5.5默认是double
    所以 5 + 5.5就是 5转换为 double类型后加上 5.5 
    返回的是double,所以
    应该写成float f = (float)(5 + 5.5)
    如果要 5.5是float
    应该写成 5.5f,后面的f就明确表示5.5是float
      

  5.   

    java是一个强数据类型,默认的是int 所以必须添加 byte数据类型才能不出现错误、
      

  6.   

    java会在运算时把比int小的类型转化为int然后再运算,所以计算后要强制转换
    对于float,在计算是如果后面不加f,则按double类型计算