2013-10-03 45 views
2

这似乎是一个愚蠢的问题,但我无法找到答案,或者至少我不知道如何在谷歌上制定它。返回类型(长+长)

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

但是,两个长或长和一个整数呢?双重和浮动相同的问题。我在所有这些转换之间有点失落。

回答

16

A long。这是受§5.6.2 Binary Numeric Promotion,第2项:

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

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

+2

要添加到KennyTM,如果添加一个双精度和浮点数,则会得到一个double(如第一个项目符号所示) –

+0

感谢准确的答案! – SegFault