Operatory multiplikatywne: *, i %
expression * expression
expression / expression
expression % expression
Uwagi
Operatory multiplikatywne są:
Mnożenie (*)
Rejon (/)
Moduł (resztę z dzielenia) (%)
Te operatory dwuargumentowe zostały łączność od lewej do prawej.
Operatory multiplikatywne mają operandy typu arytmetycznych.Modulus operator (%) ma bardziej rygorystyczne wymagania argumentów musi być typem całkowitym.(Aby uzyskać resztę z dzielenia liczb zmiennoprzecinkowych, należy użyć funkcji run-time fmod.) Konwersje objęte w Konwersje arytmetyczne są stosowane do operandy, i wynik jest typu przekonwertowane.
Operator mnożenia daje wynik mnożenia pierwszego operandu drugiego.
Operator dzielenia daje wynik podzielenie pierwszego operandu przez drugi.
Operator moduł plonów pozostałą, biorąc pod uwagę przez następujące wyrażenie, gdzie e1 jest pierwszy operand i e2 jest drugim: e1 – (e1 / e2) * e2, gdy oba operandy są integralną typów.
Dzielenie przez 0 w podziale lub wyrażenie moduł jest niezdefiniowany i powoduje błąd w czasie wykonywania.Niezdefiniowane, błędne wyniki generuje więc następujących wyrażeń:
i % 0
f / 0.0
Jeśli oba operandy wyrażenie mnożenie, dzielenie lub moduł ma ten sam znak, wynik jest dodatni.W przeciwnym razie wynik jest ujemny.Wynik operacji moduł znak jest zdefiniowane w implementacji.
[!UWAGA]
Ponieważ konwersje, wykonywane przez operatory multiplikatywne nie przewidują przepełnienie lub niedomiar warunków, informacje mogą zostać utracone, jeśli wynik operacji multiplikatywne nie może być przedstawiona w typu operandów po konwersji.
Programu Microsoft
W programie Microsoft C++ wynik wyrażenia moduł jest zawsze taka sama, jak znak pierwszego operandu.
KONIEC Microsoft szczególne
Jeśli obliczana podział dwóch liczb całkowitych jest niedokładna i tylko jeden argument jest liczbą ujemną, wynikiem jest największą liczbę całkowitą (w wielkości, pomijając znak) jest mniejsza niż wartość dokładnie, które przyniesie operację podziału.Na przykład, wartość wyliczona –11 / 3 jest –3.666666666.Wynik ten podział integralną jest –3.
Związek między operatory multiplikatywne jest definiowany przez tożsamości (e1 / e2) * e2 + e1 % e2 == e1.
Przykład
Poniższy program pokazuje operatory multiplikatywne.Należy zauważyć, że albo operand 10 / 3 muszą być wyraźnie oddane do wpisz float Aby uniknąć obcięcia, tak aby oba operandy są typu float przed podziału.
// 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;
}
Zobacz też
Informacje
Wyrażenia z operatory dwuargumentowe