Opérateurs de multiplication C
Les opérateurs multiplicatifs sont utilisés dans les opérations de multiplication (*
), de division (/
) et de reste (%
).
Syntaxe
multiplicative-expression
: cast-expression
multiplicative-expression
*
cast-expression
multiplicative-expression
/
cast-expression
multiplicative-expression
%
cast-expression
Les opérandes de l'opérateur de reste (%
) doivent être intégraux. Les opérateurs de multiplication (*
) et de division (/
) peuvent prendre des opérandes de type entier ou virgule flottante. Les types des opérandes peuvent être différents.
Les opérateurs de multiplication exécutent les conversions arithmétiques courantes sur les opérandes. Le type du résultat est le type des opérandes après conversion.
Notes
Étant donné que les conversions exécutées par les opérateurs de multiplication ne fournissent pas de conditions de dépassement de capacité positif ou de dépassement de capacité négatif, les informations peuvent être perdues si le résultat d'une opération de multiplication ne peut pas être représenté dans le type des opérandes après conversion.
Les opérateurs de multiplication C sont décrits dans ce tableau :
Opérateur | Description |
---|---|
* |
L’opérateur de multiplication provoque la multiplication de ces deux opérandes. |
/ |
L’opérateur de division provoque la division du premier opérande par le deuxième. Si deux opérandes entiers sont divisés et que le résultat n’est pas un entier, il est tronqué selon les règles suivantes : - Le résultat de la division par 0 est indéfini selon la norme C ANSI. Le compilateur Microsoft C génère une erreur au moment de la compilation ou de l'exécution. - Si les deux opérandes sont positifs ou non signés, le résultat est tronqué vers 0. - Si l’un des opérandes est négatif, si le résultat de l’opération est le plus grand entier inférieur ou égal au quotient algébrique ou le plus petit entier supérieur ou égal au quotient algébrique, l’implémentation est définie. (Consultez la section spécifique à Microsoft.) |
% |
Le résultat de l’opérateur de reste est le reste lorsque le premier opérande est divisé par le deuxième. Lorsque la division est incorrecte, le résultat est déterminé par les règles suivantes : - Si l’opérande de droite est zéro, le résultat est non défini. - Si les deux opérandes sont positifs ou non signés, le résultat est positif. - Si l’un des opérandes est négatif et que le résultat est incorrect, le résultat est que l’implémentation est définie. (Consultez la section spécifique à Microsoft.) |
Spécifique à Microsoft
Dans la division où l’un des opérandes est négatif, la direction de la troncation est vers 0.
Si l’une ou l’autre opération est négative dans la division avec l’opérateur de reste, le résultat a la même signature que le dividende (le premier opérande de l’expression).
Exemples
Les déclarations illustrées ici sont utilisées pour les exemples suivants :
int i = 10, j = 3, n;
double x = 2.0, y;
Cette instruction utilise l'opérateur de multiplication :
y = x * i;
Dans ce cas, x
est multiplié par i
pour donner la valeur 20,0. Le résultat a le type double
.
n = i / j;
Dans cet exemple, 10 est divisé par 3. Le résultat est tronqué vers 0, ce qui produit la valeur entière 3.
n = i % j;
Cette instruction assigne le reste entier n
lorsque 10 est divisé par 3.
Section spécifique à Microsoft
Le signe du reste est identique au signe du dividende. Par exemple :
50 % -6 = 2
-50 % 6 = -2
Dans chaque cas, 50
et 2
ont le même signe.
FIN de la section spécifique à Microsoft