„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 16.11.2024
Durchsuche:553

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

Alternativ können Sie die folgende Formel verwenden:

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

Durch die Anwendung dieser Methoden können Sie sicherstellen, dass Javas Modulo Der Operator gibt positive Ergebnisse für negative Eingaben zurück, was dem Verhalten in Python entspricht.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3