C++ はオーバーフローで何をしますか? Javaはオーバーフローで何をしますか?
C++ でオーバーフロー エラーが発生した場合、可能な限り小さい数に移動し、そこから加算されると思いますが、正確にはわかりません。Javaがこの問題をどのように処理するかわかりませんか?
Javaでの整数加算に関する限り、オーバーフロー動作はJLS#15.18.2で定義されています。
整数の加算がオーバーフローした場合、結果は、十分に大きい2の補数形式で表される数学的合計の下位ビットになります。オーバーフローが発生した場合、結果の符号は2つのオペランド値の数学的合計の符号と同じではありません。
C++ 標準の n3242 では
式の評価中に、結果が数学的に定義されていないか、その型の表現可能な値の範囲内にない場合、動作は undefinedです。[ 注: C++ の既存の実装のほとんどは、整数オーバーフローを無視します。ゼロ除算、ゼロ除数を使用した剰余の形成、およびすべての浮動小数点例外の処理はマシンによって異なり、通常はライブラリ関数によって調整できます。—終わりのメモ]"
OPより
C++ でオーバーフロー エラーが発生した場合、可能な限り小さい数に移動し、そこから追加すると思います
いいえ、時々そのように思えます。