Heim > Backend-Entwicklung > C++ > Wie geht der Modulo-Operator mit negativen Zahlen um?

Wie geht der Modulo-Operator mit negativen Zahlen um?

Linda Hamilton
Freigeben: 2024-12-23 03:10:13
Original
610 Leute haben es durchsucht

How Does the Modulo Operator Handle Negative Numbers?

Das Verhalten des Modulo-Operators bei negativen Werten verstehen

Der Modulo-Operator liefert bekanntermaßen unterschiedliche Ergebnisse, wenn er mit negativen Operanden verwendet wird. Um dies zu vertiefen, betrachten wir die folgenden Vorgänge:

std::cout << (-7 % 3) << std::endl; // Output: -1
std::cout << (7 % -3) << std::endl; // Output: 1
Nach dem Login kopieren

Begründung gemäß ISO-Standard

Gemäß ISO14882:2011(e) 5.6-4, Der Modulo-Operator (%) ergibt den Rest der Division des ersten Ausdrucks durch den zweiten. Bei ganzzahligen Operanden wie in unserem Fall führt der Divisionsoperator (/) jedoch eine ganzzahlige Division durch und verwirft alle Bruchteile.

Mathematische Aufschlüsselung

Lassen Sie uns die Berechnungen aufschlüsseln Zur Verdeutlichung:

  • (-7 / 3) ergibt -2 und (-2 * 3) ist -6. Daher ergibt -7 % 3 -1, da (-6 - (-7)) = -1.
  • (7 / -3) ergibt -2 und (-2 * -3) ist 6. Somit ergibt 7 % -3 1, da (6 - 7) = 1.

Implementierungsdefiniert Verhalten

Es ist wichtig zu beachten, dass das Vorzeichen des Rests durch die Implementierung definiert wird, wenn beide Operanden negativ sind. Ab ISO14882:2011(e) wird das Verhalten jedoch nicht mehr explizit angegeben wie im Vorgänger ISO14882:2003(e).

Das obige ist der detaillierte Inhalt vonWie geht der Modulo-Operator mit negativen Zahlen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage