Heim  >  Artikel  >  Java  >  Warum gibt -1 % 2 in Java -1 zurück, in Python jedoch 1?

Warum gibt -1 % 2 in Java -1 zurück, in Python jedoch 1?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 04:04:28985Durchsuche

Why Does -1 % 2 Return -1 in Java, but 1 in Python?

Modulo-Operationen in Java: Warum positive und negative Zahlen wichtig sind

Wenn Sie Modulo-Operationen in Java ausführen, verstehen Sie den subtilen Unterschied zwischen dem Modul und der Rest ist entscheidend. Im Gegensatz zu Python berechnet der Modulo-Operator (%) von Java den Rest und nicht den Modul.

Betrachten Sie das in der Frage bereitgestellte Beispiel: -1 % 2 gibt in Java -1 zurück, während es in Python 1 zurückgibt. Dies liegt daran, dass Python den Modul berechnet, der immer einen nicht negativen Wert ergibt, während Java den Rest berechnet, der das Vorzeichen des ersten Operanden (in diesem Fall -1) beibehält.

Um das gleiche Verhalten wie zu erhalten Python können Sie die folgenden Techniken anwenden:

  • Addition und Modulo: Addieren Sie 2 zum negativen Ergebnis und wenden Sie dann das Modulo erneut an. Diese Operation stellt sicher, dass das Ergebnis immer positiv ist:
<code class="java">int i = (((-1 % 2) + 2) % 2)</code>
  • Bedingtes Inkrement: Initialisieren Sie das Ergebnis auf den ursprünglichen Rest, und wenn es negativ ist, addieren Sie 2:
<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>

Denken Sie daran, dass diese Techniken immer dann Anwendung finden, wenn Sie den Modul negativer Zahlen in Java berechnen müssen. Während die Operatoren in Python und Java möglicherweise das gleiche Symbol (%) haben, verhalten sie sich unterschiedlich, was möglicherweise zu Verwirrung führt, wenn Sie zwischen Sprachen wechseln.

Das obige ist der detaillierte Inhalt vonWarum gibt -1 % 2 in Java -1 zurück, in Python jedoch 1?. 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