Heim  >  Artikel  >  Java  >  Warum gibt der Modulo-Operator von Java ein negatives Ergebnis für negative Zahlen zurück?

Warum gibt der Modulo-Operator von Java ein negatives Ergebnis für negative Zahlen zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 11:50:02209Durchsuche

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

Negative Modulo-Ergebnisse in Java

Bei der Durchführung von Modulo-Operationen mit negativen Zahlen in Java ist Ihnen möglicherweise aufgefallen, dass die Ergebnisse von den erhaltenen abweichen in Python. In Java ergibt int i = -1 % 2 -1, während es in Python 1 zurückgibt.

Modulo und Rest verstehen

Der Schlüssel zum Verständnis dieses Unterschieds liegt in der Unterscheidung zwischen Modulo und Rest. In Python gibt der %-Operator den Modulus zurück, der immer ein nicht negatives Ergebnis liefert. Im Gegensatz dazu gibt der Modulo-Operator von Java den Rest zurück, der negativ sein kann, wenn der Zähler negativ ist.

Negative Ergebnisse korrigieren

Um das gleiche Verhalten wie der %-Operator von Python zu erhalten In Java können Sie die folgenden Schritte ausführen:

  1. Berechnen Sie den Rest mit Modulo: int i = -1 % 2;
  2. Fügen Sie genug hinzu, um den Rest nicht negativ zu machen: if (i < 0) i = 2;

Alternativ können Sie die folgende Formel verwenden:

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

Durch die Anwendung dieser Methoden können Sie sicherstellen, dass der Modulo-Operator von Java positive Ergebnisse für negative Eingaben zurückgibt, was dem Verhalten in Python entspricht.

Das obige ist der detaillierte Inhalt vonWarum gibt der Modulo-Operator von Java ein negatives Ergebnis für negative Zahlen zurück?. 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