Operator Modulo Änderung in C ++ 11? [Duplikat]
Mögliche Duplikate:
C ++ Operator% garantiert
In c ++ 98/03
5.6-4
Der binäre Operator liefert den Quotienten und der binäre Operator% den Rest aus der Division des ersten Ausdrucks durch den zweiten. Wenn der zweite Operand von / oder% Null ist, ist das Verhalten undefiniert. ansonsten ist (a / b) * b + a% b gleich a.Wenn beide Operanden nicht negativ sind, ist der Rest nicht negativ. Andernfalls ist das Vorzeichen für den Rest von der Implementierung abhängig.
In c ++ 11:
5,6 -4
Der binäre Operator liefert den Quotienten und der binäre Operator% den Rest aus der Division des ersten Ausdrucks durch den zweiten. Wenn der zweite Operand von / oder% Null ist, ist das Verhalten undefiniert. Für ganzzahlige Operanden liefert der Operator / den algebraischen Quotienten, wobei jeder Bruchteil verworfen wird. 81 Wenn der Quotient a / b in der Art des Ergebnisses darstellbar ist, ist (a / b) * b + a% b gleich a.
Wie Sie sehen, fehlt die für das Vorzeichenbit definierte Implementierung. Was passiert damit?