所以我理解在java中,一个值在被添加时被认为是一个整数.
不必要.long例如,如果您要添加s,则不会.
但是,在这里,我已经对变量x和y进行了简短的说明,它仍然给出了一个错误,说不能从int转换为short.
那是因为你在加入之前就投出了价值; 该结果的+仍然是一个int.(事实上,(short)x是一个空操作; x被已一short).
写这个的正确方法是:
short z = (short)(x + y);
Run Code Online (Sandbox Code Playgroud)
在short小号提升为intS,加在一起,然后我们把结果回落到一个short.
你的评论:
(我)不确定为什么首先将x和y缩短并将它们放入括号中不会导致短+短的加法
因为Java 没有 short + short添加.它添加的最小尺寸是int,因为"添加"运算符(和)做的第一件事是二进制数字促销:+-
如果任何操作数是引用类型,则进行拆箱转换(第5.1.8节).
应用扩展基元转换(第5.1.2节)来转换由以下规则指定的一个或两个操作数:
如果任一操作数是类型
double,则另一个操作数转换为double.否则,如果任一操作数的类型为float
, the other is converted tofloat`.否则,如果任一操作数是类型
long,则另一个操作数转换为long.否则,两个操作数都将转换为类型
int.
所以short + short(或char + char,或byte + byte)变得int + int屈服int.该唯一整数加法Java有有int + int => int和long + long => long.
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |