2

这似乎是一个愚蠢的问题,但我找不到答案,或者至少我不知道如何在谷歌上制定它。

当我们在 Java 中添加两个字节时,结果是一个 int。

但是两个 long 或者一个 long 和一个 int 呢?double 和 float 的问题相同。我在所有这些转换之间有点迷失了。

4

1 回答 1

16

一个long。这受§5.6.2 Binary Numeric Promotion,第 2 项的约束:

  • 如果任一操作数的类型为double,则将另一个转换为double
  • 否则,如果任一操作数的类型为float,则将另一个转换为float
  • 否则,如果任一操作数的类型为long,则将另一个转换为long
  • 否则,两个操作数都转换为 type int

由于最后一条规则,您int在添加两个 s 时会得到一个。byte

于 2013-10-03T13:18:02.993 回答