byte类型的数据不能直接做相加减,因为在做相加减的时候,Java会默认将byte类型的数据转换成int类型,所以如果接收的数据还是byte类型的话,会出错。
错误代码:
byte b1 = 3,b2 = 4,b;
b = b1+b2;//这一行会报错
正确写法:
byte b1 = 3,b2 = 4;
int b = b1+b2;
或者:
byte b1 = 3,b2 = 4,b;
b = (byte)(b1+b2);
同理short:
short b1 = 3,b2 = 4,b;
b = b1+b2;//这个是错误的,因为刚开始的时候b是short类型,但是在对它做+操作时,默认将它提升到了int类型,肯定出错。
正确写法:
byte b1 = 3,b2 = 4;
int b = b1+b2;
//或者
b = (short)(b1+b2);
或者用这种写法:
short b = 1;
b += 1;//等同于b = (short)(b+1);