Freigeben über


Multiplikationsoperatoren: *,/und %

 expression * expression 
 expression / expression 
 expression % expression

Hinweise

Die Multiplikationsoperatoren sind:

  • Multiplikation (*)

  • /(Division)

  • Modulo (Rest aus der Division) (%)

Diese binären Operatoren haben Assoziativität von links nach rechts.

Die Multiplikationsoperatoren arithmetischen Typen von Operanden akzeptieren.Der Modulo-Operator (%) enthält eine strengere Anforderung darin, dass ihre Operanden vom ganzzahligen Typ aufweisen müssen.Das verbleibende Gleitkommadivision (abzurufen, verwenden Sie die Laufzeitfunktion, fmod). In Konvertierungen, die in Arithmetische Konvertierungen abgedeckt werden, werden in den Operanden angewendet, und das Ergebnis ist durch den konvertierten Typ.

Der Multiplikationsoperator ergibt das Ergebnis der Multiplikation des ersten Operanden durch den zweiten.

Der Divisionsoperator ergibt das Ergebnis der Division des ersten Operanden durch den zweiten.

Der Modulo-Operator führt den Rest der durch den folgenden Ausdruck angegeben ist, wobei der erste Operand e1 und e2 das zweite ist: e1 – (e1 / e2) * e2, wobei beide Operanden aus Ganzzahltypen sind.

Division durch 0 (null) entweder in einer Division oder in einem Modulo-Ausdruck ist nicht definiert und einen Laufzeitfehler verursacht.Daher generiert werden die folgenden Begriffe definiert, die keine fehlerhaften Resultate:

i % 0
f / 0.0

Wenn beide Operanden in einer Multiplikation, Division einer oder Modulo-Ausdruck dasselbe Zeichen haben, lautet das Ergebnis positiv.Andernfalls entspricht das Ergebnis negativ.Das Ergebnis des Zeichens eines Modulo-Vorgangs wird Implementierung-definiert.

HinweisHinweis

Da Konvertierungen, die von den Multiplikationsoperatoren ausgeführt werden, nicht für Sammel- oder Gleitpunktunterschreitungsbedingungen bereitstellen, sind Informationen verloren gehen, wenn das Ergebnis eines Vorgangs multiplikativen nicht im Typ der Operanden nach Konvertierung dargestellt werden kann.

Microsoft-spezifisch

In Microsoft C++ ist das Ergebnis eines Modulo-Ausdrucks immer dasselbe wie das Vorzeichen des ersten Operanden.

Microsoft ENDES bestimmten

Wenn die berechnete Division von zwei ganzen Zahlen ungenau ist und nur ein Operand negativ ist, ist das Ergebnis die größte Ganzzahl (in der Größe, abgesehen vom Zeichen), die kleiner ist als der exakte Wert die Division führen würde.Ein Beispiel ist der berechnete Wert von 11/3 ist 3.666666666.Das Ergebnis dieser ganzzahligen Division ist 3.

Die Beziehung zwischen den Multiplikationsoperatoren ist von der Identität (e1 / e2) * e2ee1+ e2 == 1% angegeben.

Beispiel

Das folgende Programm zeigt die Multiplikationsoperatoren.Beachten Sie, dass jeder Operand des 10 / 3 explizit umgewandelt werden muss, um float einzugeben, um Abschneiden zu vermeiden, dass beide Operanden vom Typ float vor Division sind.

// expre_Multiplicative_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
   int x = 3, y = 6, z = 10;
   cout  << "3 * 6 is " << x * y << endl
         << "6 / 3 is " << y / x << endl
         << "10 % 3 is " << z % x << endl
         << "10 / 3 is " << (float) z / x << endl;
}

Siehe auch

Referenz

Ausdrücke mit binären Operatoren

C++-Operatoren

Operatorrangfolge und Assoziativität

C-Multiplikationsoperatoren