Sdílet prostřednictvím


Multiplikativní operátory a operátor numerického zbytku

expression * expression 
 expression / expression 
 expression % expression

Poznámky

Operátory násobení jsou:

  • Násobení (*)

  • Dělení (/)

  • Zbytek (po dělení) (%)

Tyto binární operátory mají asociativitu zleva doprava.

Operátory násobení vezmou operandy aritmetických typů.Operátor zbytku (%) má přísnější požadavky v tom smyslu, že jeho operandy musí být integrálního typu. (Chcete-li získat zbytek po dělení s pohyblivou čárkou, použijte funkci run-time fmod.) Převody uvedené v tématu Aritmetické převody jsou použity na operandy a výsledek je v převedeném typu.

Operátor násobení dává výsledek vynásobení prvního operandu druhým.

Operátor dělení dává výsledek vydělení prvního operandu druhým.

Operátor zbytku vrací zbytek daný následujícím výrazem, kde e1 je první operand a e2 je druhý: e1 – (e1 / e2) * e2, kde jsou oba operandy integrální typy.

Dělení nulou ve výrazu dělení nebo zbytku není definováno a způsobí chybu modulu run-time.Následující výrazy proto způsobí nedefinované chybné výsledky:

i % 0
f / 0.0

Pokud jsou oba operandy na výraz násobení, dělení, nebo zbytku mají stejné znaménko, výsledek je kladný.Jinak je výsledek záporný.Výsledek znaménka operace modulus je definován implementací.

[!POZNÁMKA]

Vzhledem k tomu, že převody prováděné operátory násobení nepočítají s podmínkami přetečení nebo podtečení, informace se mohou ztratit, pokud výsledek operace násobení nelze reprezentovat v typu operandu po převodu.

Specifické pro Microsoft

V programu Microsoft C++ výsledek výrazu zbytku je vždy stejný jako znaménko prvního operandu.

END Specifické pro Microsoft

Pokud je vypočítané dělení dvou celých čísel nepřesné a pouze jeden operand je záporný, výsledkem je největší celé číslo (v rozsahu bez ohledu na znaménko) menší než přesná hodnota, kterou by byla výsledkem operace dělení.Například vypočítaná hodnota –11 / 3 je –3,666666666.Výsledek tohoto dělení celých čísel je –3.

Vztah mezi operátory násobení je dán identitou (e1 / e2) * e2 + e1 % e2 == e1.

Příklad

Následující program ukazuje operátory násobení.Všimněte si, že každý operand 10 / 3 musí být explicitně přetypován na typ float, aby se zabránilo zkrácení, takže oba operandy jsou před dělením typu float.

// 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;
}

Viz také

Referenční dokumentace

Výrazy s binárními operátory

Operátory jazyka C++

Operátory C++, priorita a asociativita

Multiplikativní operátory jazyka C