java short相等_Java的short=short+short报错问题

Java的short=short+short报错问题

short x =5;

short y=6;

short z=x+y;//compile error

变量z必须定义为int型?

5+6的范围并没有超过short型的范围?为什么不能相加之后还是short类型的?

是不是无论什么类型的两个数相加,结果最小的类型要是int????

x+y 相加过程中可能会转换为int,这时你必须强制转换回short才行

即:short z=x+y 改为;short z=(short)(x+y)

Java 程序语言提供了一些可以作用在整数值上的操作数:比较运算子,得到 boolean 型别的值:数值比较运算子 =,>,和 >=(§15.20.1)

数值相等运算子 == 和 !=(§15.21.1)

数值运算子,得到 int 或 long 型别的值:单元加减运算子 + 和 -(§15.15.3,§15.15.4)

乘除运算子 *,/,和 %(§15.17)

加减运算子 + 和 -(§15.18.2)

递增运算子 ++,前置(§15.15.1)和后置(§15.14.1)两者

递减运算子 --,前置(§15.15.2)和后置(§15.14.2)两者

有号和无号移位运算子 <>,和 >>>(§15.19)

位补码运算子 ~(§15.15.5)

整数位元运算子 &,|,和 ^(§15.22.1)

如果整数运算子,拥有最少一个型别 long 的操作数时,那这运算会以 64-位精度来实现,而这数值运算子的结果是型别 long 的。如果其它的操作数不是 long,它会先被以数值升级(§5.6)宽化(§5.1.4)到型别 long。否则,运算会以 32-位精度来实现,而这数值运算子的结果是型别 int 的。如果有操作数不是 int,它会先被以数值升级宽化到 int 型别。

精度小于int的数值运算的时候都回被自动转换为int后进行计算。只能自己再转回去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值