输出byte类型和short类型的数据不能直接做基础运算(加减乘除),因为在做加减乘除的时候,java会默认将byte类型和short类型的数据转换为int类型,如果还用byte和short类型接收的话,就会出错。
例:
byte b = 3;
b = b + 4; //这一行会报错
编译器报错提示为:
正确方法:
byte b = 3;
b = (byte)(b + 4); //使用强制转换
将运算后的值用byte类型强制转换
输出b的值为7
或者:
byte b = 3;
int c = b + 4;
用int型变量c接收
输出c的值为7
用两个byte变量运算一样
例:
byte b1 = 3,b2 = 4;
byte b =b1 + b2; //报错,原因与上面代码一样
short变量运算同理
例:
short s = 5;
s = s * 2; //报错
正确代码:
short s = 5;
s = (short)(s * 2);
输出s的值为10
或者:
short s = 5;
int s1 = s * 2;
输出s1的值为10
如果是byte和short类型的混合运算
例:
byte b = 5;
short s = 3;
short t = s + b; //报错
则会在第三行报错
正确代码:
byte b = 5;
short s = 3;
short t = (short)(s + b);
因为用short类型的t变量接收,所以需要用short强制转换,用byte类型接收时同理
输出t的值为8
或直接用int类型接收:
byte b = 5;
short s = 3;
int t = s + b;
输出t的值为8