Heim  >  Artikel  >  Java  >  Hier sind einige Titeloptionen, die mit dem Frageformat spielen: * **Warum ist -13 % 64 nicht 51 in Java?** (Einfach und direkt) * **Java-Modul-Operator und negative Zahlen: So erhalten Sie das erwartete Ergebnis

Hier sind einige Titeloptionen, die mit dem Frageformat spielen: * **Warum ist -13 % 64 nicht 51 in Java?** (Einfach und direkt) * **Java-Modul-Operator und negative Zahlen: So erhalten Sie das erwartete Ergebnis

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 12:17:30207Durchsuche

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)
* **

Modulberechnung mit negativen Zahlen in Java

In Java gibt der Moduloperator (%) den Rest nach der Division zweier Zahlen zurück. Beim Umgang mit negativen Zahlen ist das Ergebnis jedoch möglicherweise nicht wie erwartet.

Problem:

Ein Entwickler stößt auf ein unerwartetes Ergebnis, wenn er Modulberechnungen mit negativen Zahlen durchführt. konkret -13 % 64. Anstelle des gewünschten Ergebnisses von 51 ist das Ergebnis -13.

Erklärung:

Die Definition des Moduls für negative Zahlen variiert je nach Programmierung Sprachen. In Java hat der vom Modulo-Operator zurückgegebene Rest das gleiche Vorzeichen wie der Dividend (Zähler). Daher ergibt -13 % 64 -13.

Lösung:

Um das gewünschte Ergebnis von 51 zu erhalten, kann die folgende Korrektur angewendet werden:

<code class="java">int r = x % n;
if (r > 0 && x < 0) {
    r -= n;
}</code>

Dieser Code stellt sicher, dass der Rest positiv ist, wenn die Dividende negativ ist.

Alternativ kann die folgende Anpassung erfolgen, wenn die Sprache einen negativen Rest für negative Eingaben zurückgibt und der Entwickler ein positives Ergebnis bevorzugt gemacht:

<code class="java">int r = x % n;
if (r < 0) {
    r += n;
}</code>

Dieser Code wandelt den negativen Rest in einen positiven Wert um.

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die mit dem Frageformat spielen: * **Warum ist -13 % 64 nicht 51 in Java?** (Einfach und direkt) * **Java-Modul-Operator und negative Zahlen: So erhalten Sie das erwartete Ergebnis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn