2つの算術関数があり、2つのlong
変数を追加し、long
という値を返すと仮定します。引数としてLong.MaxValue()
を渡すと、完璧な結果は得られません。その解決策は何でしょうか?以下のコードは、私が何を意味するかを説明します。Javaでの算術演算
public class ArithmaticExample {
public static void main(String[] args) {
System.out.println(ArithmaticExample.addLong(Long.MAX_VALUE, Long.MAX_VALUE));
}
public static long addLong(long a,long b){
return a+b;
}
}
* "何が解決策になるのですか?" *何のための解決策ですか? 'long'には範囲があります。 'Long.MAX_VALUE'を自分自身に追加すると、その範囲を超えてラップアラウンドします。そう? (面接官がそれより良い質問をしていない限り、おそらく他の場所で仕事を探すだろう) –
期待される結果は何ですか?良い解決策は「オーバーフロー」(すでに起こっている)、「飽和」、「広げる」(より広いプリミティブがなくても、BigIntegerに移動する必要があります)と「エラーアウト」です。 – Thilo