Java の負のモジュラス値
元の質問:
でモジュロ演算子を使用する場合Java では、負の数値が負の値になる場合があります。たとえば、 int i = -1 % 2 を計算すると -1 が返されますが、Python ではこの同じ計算で 1 が返されます。
説明:
間の動作の違いJava と Python は、剰余演算と剰余演算の区別から生じています。 Python では、% 演算子はモジュラス演算を実行し、負の入力の場合でも常に正の結果を返します。対照的に、Java の % 演算子は剰余を計算します。負の入力の場合は負になる可能性があります。
解決策:
Java で Python のモジュロ演算と同じ動作を実現するには、次のようにします。次のアプローチに従うことができます。
<code class="java">int i = (((-1 % 2) + 2) % 2);</code>
この式では、モジュラス演算はまず、括弧を使用すると、負の値が得られます。 2 を加算すると結果が正の範囲にシフトされ、最後の係数演算により範囲 [0, 1] 内に収まることが確認されます。
<code class="java">int i = -1 % 2; if (i < 0) i += 2;</code>
ここでは、負の数の剰余演算が最初に評価されます。結果が負の場合は、2 を増分して正の係数を取得します。
アプローチの選択は、特定の要件と、既存のコード ベースへの統合の容易さによって異なります。
以上がJava のモジュロ演算子が負の数に対して負の値を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。