java中byte类型和short类型进行基础运算(加减乘除)时的问题

输出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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值