一些基本数据类型问题

Java中,

byte b1=0; 正确

byte b2=127; 正确

short s1=b1+b2;为什么会报错呢

java中默认的整数为int类型,浮点为double类型,但是定义赋值的时候针对float
都是整型参与的运算都要首先自动转换int再参与运算(除非有long类型参与则都转成long或者有浮点型参与运算则转成浮点型再参与运算),你这里s1=b1+b2,b1和b2首先自动转成int,再做+运算,再赋值给s1,这时就是int型赋值给short,大的赋值给小的不加强制转换就会报错。
 
1,隐性转换一般都是放宽转换(如byte到int,int到long等,都是小的赋给大的。)
但是却有一个例外就是,在赋值转换中,
 隐性转换也包含了缩窄基本转换。
就是从int到byte,char,short的转换:
 比如:
byte b=1;//合法
byte b=128; //非法
char和short都是同理的。
右边必须为int型字面常量,而且值必须能被左边类型表示
 
2,单纯是都是整型数据参与的运算都要转换为int类型,除非非有long类型参与运算则转换为long,或者有浮点类型参与运算的话都转成浮点类型。
       单纯的浮点类型float类型参与运算不用转成double,除非有double类型参与运算才转成double。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值