Java 基本运算符返回类型

Sup*_*ark 3 java

Java 运算符是否返回 int 类型?

short a = 1;
short b = 2;

short c = a&b;
short d = a+b;
long e = a&b;
Run Code Online (Sandbox Code Playgroud)

如果是 'c', 'd' 他们有类型不匹配错误。为什么?和 'e' 没有错误的情况。为什么??

小智 6

两个小于 int 的整数类型变量之间的任何运算都会产生一个 int。所以:

short + short -> int
short + byte -> int
Run Code Online (Sandbox Code Playgroud)

等等。它在Java Language Specification 中提到。

因此,您必须将 a + b 的结果转换为 short 以便将其分配回一个类型为 short 的变量。请注意,如果这样做,您可能会丢失数据。

不过long比 大int。分配有效。