short
Java のデータ型について 1 つ質問があります。短い範囲は -32768 から 32767 の間であることがわかっています。
そのため、範囲を超える 2 つの短い値を追加しようとすると、次のように、想定される合計から正の範囲または負の範囲を 2 倍した値を差し引いた結果になります。
short a = 30000;
a = (short) (a+a);
結果は-5536です。
したがって、計算は32768 + 32768 = 65536、6000 - 65536 = -5536です。
私はそれが何をするのか知っていますが、なぜこのようにするのかわかりません。
誰かがロジックを説明できますか、またはJavaがこのようにしている理由を説明できますか?