Java での負の数値のモジュラス計算
Java では、モジュラス演算子 (%) は 2 つの数値を除算した後の剰余を返します。ただし、負の数値を扱う場合、結果が期待どおりにならない場合があります。
問題:
開発者が負の数値でモジュラス計算を実行すると、予期しない結果が発生します。具体的には -13 % 64。望ましい結果 51 の代わりに、結果は -13 になります。
説明:
負の数の係数の定義はプログラミングによって異なります。言語。 Java では、剰余演算子によって返される剰余は、被除数 (分子) と同じ符号を持ちます。したがって、-13 % 64 は -13 と評価されます。
解決策:
望ましい結果 51 を得るには、次の修正を適用できます:
<code class="java">int r = x % n; if (r > 0 && x < 0) { r -= n; }</code>
このコードは、被除数が負の場合でも剰余が正であることを保証します。
あるいは、言語が負の入力に対して負の剰余を返し、開発者が正の結果を望む場合は、次の調整を行うことができます。 made:
<code class="java">int r = x % n; if (r < 0) { r += n; }</code>
このコードは、負の剰余を正の値に変換します。
以上が以下に、質問形式を使ったタイトルのオプションをいくつか示します。 * **Java では -13 % 64 が 51 ではないのはなぜですか?** (単純かつ直接的) * **Java モジュラス演算子と負の数: 期待される結果を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。