byte a=10;
byte b=20;
byte c=a+b; //这句会报错。
错误原因是:不兼容的类型,从int转换到byte可能会有损失
byte和byte都是相同类型,但是出现报错,原因:
虽然a,b但是byte,但是计算a+b会先将a和b都提升到int,再计算,得到的结果也是int。
由于计算机的cpu通常按照4个字节为单位从内存中读取数据,为了硬件上实现方便,诸如byte和short这种低于4个字节的类型,会提升成int,再参与计算。
//正确写法
byte c=(byte)a+b;