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
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:
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!