ホームページ  >  記事  >  Java  >  以下に、質問形式を使ったタイトルのオプションをいくつか示します。 * **Java では -13 % 64 が 51 ではないのはなぜですか?** (単純かつ直接的) * **Java モジュラス演算子と負の数: 期待される結果を取得する方法

以下に、質問形式を使ったタイトルのオプションをいくつか示します。 * **Java では -13 % 64 が 51 ではないのはなぜですか?** (単純かつ直接的) * **Java モジュラス演算子と負の数: 期待される結果を取得する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 12:17:30207ブラウズ

Here are a few title options, playing with the question format:

* **Why is -13 % 64 not 51 in Java?**  (Simple and direct)
* **Java Modulus Operator and Negative Numbers: How to Get the Expected Result?** (More descriptive, highlights the challenge)
* **

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。