Sdílet prostřednictvím


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

Syntaxe

expression * expression
expression / expression
expression % expression

Poznámky

Operátory násobení jsou:

  • Násobení (*)

  • Divize (/)

  • Moduly (zbytek z dělení) (%)

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

Operátory násobení vezmou operandy aritmetických typů. Operátor modulus (%) má přísnější požadavek v tom, že jeho operandy musí být celočíselného typu. (Pokud chcete získat zbytek dělení s plovoucí desetinou čárkou, použijte funkci run-time, fmod.) Převody zahrnuté ve standardních převodech se použijí na operandy a výsledek je převedený typ.

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 modulus vrátí zbytek z následujícího výrazu, kde e1 je první operand a e2 je druhý: e1 - (e1 / e2) * e2, kde oba operandy jsou celočíselné 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 Microsoft Specific

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,66666666666. Výsledek tohoto integrálního dělení je -3.

Vztah mezi multiplikativními operátory 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 oba operandy 10 / 3 musí být explicitně přetypován tak, aby float se zabránilo zkrácení, aby oba operandy byly typu float před dělením.

// 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é

Výrazy s binárními operátory
Integrované operátory C++, jejich priorita a asociativita
Multiplikativní operátory jazyka C