JAVA int类型转short类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA int类型转short类型相关的知识,希望对你有一定的参考价值。

为什么会这样呢?
10默认为int类型,可是我都给它强制转换成short了,为什么这条语句行不通?

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


注意最后一句。


所以,a+(short)10运算完之后,要再次强制转换成short类型的才行。

a=(short) (a+(short)10);

追问

什么数值运算子?为什么俩short类型的加起来,能是个int?是不是JAVA默认,结果的精度最低就int?

追答

对,默认的。可以这么理解。
刚开始学,不要在意这些细节,先记住就行了。

参考技术A 两个 short类型的相加,一定会得到一个int类型的结果,只能这么写a=(short)(a+10)追问

为什么一定会得到一个int类型的呢?short的取值范围可是3万多呢,装不下?还是JAVA就默认这样?结果精度最低就int?

追答

默认的

以上是关于JAVA int类型转short类型的主要内容,如果未能解决你的问题,请参考以下文章

关于java中的short和int类型转换的问题

java int转short

java int转Short

java String类型 “你好” 转 short[]类型 麻烦快

Java中short类型想加为啥会成为int型

java基本数据类型