「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java のモジュロ演算子が負の数に対して負の結果を返すのはなぜですか?

Java のモジュロ演算子が負の数に対して負の結果を返すのはなぜですか?

2024 年 11 月 16 日に公開
ブラウズ:651

Why Does Java\'s Modulo Operator Return a Negative Result for Negative Numbers?

Java での負のモジュロ結果

Java で負の数を使用してモジュロ演算を実行すると、得られた結果と異なる結果が得られることに気付いたかもしれません。 Pythonで。 Java では、 int i = -1 % 2 は -1 を返しますが、Python では 1 を返します。

Modulo と Remainder について

この違いを理解するための鍵モジュロと剰余の違いにあります。 Python では、% 演算子は係数を返し、常に非負の結果を生成します。対照的に、Java のモジュロ演算子は剰余を返します。分子が負の場合、剰余は負になる可能性があります。

負の結果を修正する

Python の % 演算子と同じ動作を得るにはJava では、次の手順を実行できます。

  1. モジュロを使用して剰余を計算します: int i = -1 % 2;
  2. 余りが負でなくなるように十分に加算します: if (i

または、次の式を使用することもできます:

int i = (((-1 % 2) 2) % 2);

これらのメソッドを適用すると、次のことができます。 Java のモジュロ演算子が負の入力に対して正の結果を返し、Python の動作と一致することを確認します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3