ホームページ > Java > &#&チュートリアル > Java のモジュロ演算子が負の数に対して負の値を生成するのはなぜですか?

Java のモジュロ演算子が負の数に対して負の値を生成するのはなぜですか?

Linda Hamilton
リリース: 2024-11-03 20:48:03
オリジナル
408 人が閲覧しました

Why Does Java's Modulo Operator Yield Negative Values for Negative Numbers?

Java の負のモジュラス値

元の質問:

でモジュロ演算子を使用する場合Java では、負の数値が負の値になる場合があります。たとえば、 int i = -1 % 2 を計算すると -1 が返されますが、Python ではこの同じ計算で 1 が返されます。

説明:

間の動作の違いJava と Python は、剰余演算と剰余演算の区別から生じています。 Python では、% 演算子はモジュラス演算を実行し、負の入力の場合でも常に正の結果を返します。対照的に、Java の % 演算子は剰余を計算します。負の入力の場合は負になる可能性があります。

解決策:

Java で Python のモジュロ演算と同じ動作を実現するには、次のようにします。次のアプローチに従うことができます。

  1. モジュラスを積極的に使用する:
<code class="java">int i = (((-1 % 2) + 2) % 2);</code>
ログイン後にコピー

この式では、モジュラス演算はまず、括弧を使用すると、負の値が得られます。 2 を加算すると結果が正の範囲にシフトされ、最後の係数演算により範囲 [0, 1] 内に収まることが確認されます。

  1. 負性のチェック:
<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>
ログイン後にコピー

ここでは、負の数の剰余演算が最初に評価されます。結果が負の場合は、2 を増分して正の係数を取得します。

アプローチの選択は、特定の要件と、既存のコード ベースへの統合の容易さによって異なります。

以上がJava のモジュロ演算子が負の数に対して負の値を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート