Opérateurs de multiplication : *,/, et %
expression * expression
expression / expression
expression % expression
Notes
les opérateurs de multiplication sont :
multiplication (*)
Division (/)
modulo (reste de division) (%)
Ces opérateurs binaires ont l'associativité de gauche à droite.
Les opérandes de prise d'opérateurs de multiplication de types arithmétiques.L'opérateur (modulo%) a une spécification plus stricte du fait ses opérandes doivent être de type intégral.(Pour obtenir le reste d'une division à virgule flottante, utilisez la fonction runtime, fmod.) Les conversions traitées dans conversions arithmétiques s'appliquent aux opérandes, et le résultat est du type converti.
L'opérateur de multiplication affiche le résultat de multiplier le premier opérande par le deuxième.
L'opérateur de division affiche le résultat de la division le premier opérande par le deuxième.
l'opérateur modulo cède le reste donné par l'expression suivante, où e1 est le premier opérande et e2 est le deuxième : e1 - (e1 / e2) * e2, où les deux opérandes sont des types intégraux.
La Division par 0 dans une division ou une expression de modulo est pas définie et provoque une erreur d'exécution.par conséquent, les expressions suivantes génèrent des résultats indéfinis et erronés :
i % 0
f / 0.0
Si les deux opérandes à une multiplication, une division, ou une expression de modulo ont le même signature, le résultat est positif.Sinon, le résultat est négatif.le résultat du signe d'une opération modulo implémentation-est défini.
[!REMARQUE]
Comme les conversions exécutées par les opérateurs de multiplication ne projetez pas des conditions de dépassement de capacité ou de dépassement de capacité négatif, les informations peuvent être perdues si le résultat d'une opération multiplicative ne peut pas être représenté dans le type des opérandes après la conversion.
Spécifique à Microsoft
Dans Microsoft C++, le résultat d'une expression de modulo est toujours le même que le signe du premier opérande.
TERMINEZ le détail de Microsoft
Si la division calculée de deux entiers est incorrecte et un seul opérande est négatif, le résultat est le plus grand entier (dans une variable, abstraction faite du signe) qui est inférieure à la valeur exacte l'opération de division céderait.Par exemple, la valeur calculée - 11/3 - est de 3,666666666.le résultat de cette division intégrale est - 3.
La relation entre les opérateurs de multiplication est fournie par l'identité (e1 / e2) * e2 + == e2e1e 1 % .
Exemple
Le programme suivant répertorie les opérateurs de multiplication.Notez que l'un ou l'autre opérande d' 10 / 3 doit être cast explicite pour taper float pour éviter une troncation afin que les deux opérandes soient de type float avant division.
// 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;
}
Voir aussi
Référence
Expressions avec les opérateurs binaires