Operatori di moltiplicazione CC Multiplicative Operators

Gli operatori di moltiplicazione eseguono operazioni di moltiplicazione (\), divisione (/) e resto (%).The multiplicative operators perform multiplication (**), division (/**), and remainder (%) operations.

SintassiSyntax

multiplicative-expression:multiplicative-expression:
cast-expressioncast-expression

multiplicative-expression \* cast-expressionmultiplicative-expression \* cast-expression

multiplicative-expression / cast-expressionmultiplicative-expression / cast-expression

multiplicative-expression % cast-expressionmultiplicative-expression % cast-expression

Gli operandi dell'operatore di resto (%) devono essere integrali.The operands of the remainder operator (%) must be integral. Gli operatori di moltiplicazione (\) e divisione (/) possono accettare operandi di tipo integrale o mobile; i tipi degli operandi possono essere diversi.The multiplication (**) and division (/**) operators can take integral- or floating-type operands; the types of the operands can be different.

Gli operatori di moltiplicazione eseguono le tipiche conversioni aritmetiche sugli operandi.The multiplicative operators perform the usual arithmetic conversions on the operands. Il tipo del risultato è il tipo degli operandi in seguito alla conversione.The type of the result is the type of the operands after conversion.

Nota

Poiché le conversioni eseguite dagli operatori di moltiplicazione non consentono condizioni di overflow o di underflow, le informazioni potrebbero essere perse se il risultato di un'operazione di moltiplicazione non può essere rappresentato nel tipo degli operandi in seguito alla conversione.Since the conversions performed by the multiplicative operators do not provide for overflow or underflow conditions, information may be lost if the result of a multiplicative operation cannot be represented in the type of the operands after conversion.

Gli operatori di moltiplicazione di C sono vengono descritti di seguito:The C multiplicative operators are described below:

OperatoreOperator DescrizioneDescription
\* L'operatore di moltiplicazione consente ai suoi due operandi di essere moltiplicati.The multiplication operator causes its two operands to be multiplied.
/ L’operatore di divisione consente al primo operando di essere diviso per il secondo.The division operator causes the first operand to be divided by the second. Se due operandi del numero intero vengono divisi e il risultato non è un numero intero, questo viene troncato in base alle regole seguenti:If two integer operands are divided and the result is not an integer, it is truncated according to the following rules:
- Il risultato della divisione per 0 non è definito, in base allo standard ANSI C.- The result of division by 0 is undefined according to the ANSI C standard. Il compilatore C Microsoft genera un errore in fase di compilazione o di esecuzione.The Microsoft C compiler generates an error at compile time or run time.
- Se entrambi gli operandi sono positivi o senza segno, il risultato viene troncato verso 0.- If both operands are positive or unsigned, the result is truncated toward 0.
- Se uno degli operandi è negativo, a seconda dell'implementazione il risultato dell'operazione può essere l'Integer più grande minore o uguale al quoziente algebrico o l'Integer più piccolo maggiore o uguale al quoziente algebrico.- If either operand is negative, whether the result of the operation is the largest integer less than or equal to the algebraic quotient or is the smallest integer greater than or equal to the algebraic quotient is implementation defined. (Vedere la sezione Microsoft specifica di seguito riportata).(See the Microsoft Specific section below.)
% Il risultato dell'operatore di resto è il resto quando il primo operando viene diviso per il secondo.The result of the remainder operator is the remainder when the first operand is divided by the second. Quando la divisione non è esatta, il risultato è determinato dalle seguenti regole:When the division is inexact, the result is determined by the following rules:
- Se l'operando destro è zero, il risultato è non definito.- If the right operand is zero, the result is undefined.
- Se entrambi gli operandi sono positivi o senza segno, il risultato è positivo.- If both operands are positive or unsigned, the result is positive.
- Se uno degli operandi è negativo e il risultato non è esatto, il risultato è definito dall'implementazione.- If either operand is negative and the result is inexact, the result is implementation defined. (Vedere la sezione Microsoft specifica di seguito riportata).(See the Microsoft Specific section below.)

Sezione specifica MicrosoftMicrosoft Specific

Nella divisione in cui uno degli operandi è negativo, la direzione del troncamento è verso 0.In division where either operand is negative, the direction of truncation is toward 0.

Se qualsiasi operazione è negativa nella divisione con l'operatore di resto, il risultato avrà lo stesso segno del dividendo (il primo operando nell'espressione).If either operation is negative in division with the remainder operator, the result has the same sign as the dividend (the first operand in the expression).

Fine sezione specifica MicrosoftEND Microsoft Specific

EsempiExamples

Le dichiarazioni illustrate vengono utilizzate per gli esempi seguenti:The declarations shown below are used for the following examples:

int i = 10, j = 3, n;  
double x = 2.0, y;  

Questa istruzione utilizza l'operatore di moltiplicazione:This statement uses the multiplication operator:

y = x * i;  

In questo caso, x viene moltiplicato per i per dare il valore 20.0.In this case, x is multiplied by i to give the value 20.0. Il risultato è di tipo double.The result has double type.

n = i / j;  

In questo esempio 10 è diviso per 3.In this example, 10 is divided by 3. Il risultato viene troncato verso 0, restituendo il valore intero 3.The result is truncated toward 0, yielding the integer value 3.

n = i % j;  

Questa istruzione assegna n il resto del numero intero, 1 quando 10 viene diviso per 3.This statement assigns n the integer remainder, 1, when 10 is divided by 3.

Sezione specifica MicrosoftMicrosoft Specific

Il segno del resto è uguale al segno del dividendo.The sign of the remainder is the same as the sign of the dividend. Ad esempio:For example:

50 % -6 = 2  
-50 % 6 = -2  

In ogni caso, 50 e 2 hanno lo stesso segno.In each case, 50 and 2 have the same sign.

Fine sezione specifica MicrosoftEND Microsoft Specific

Vedere ancheSee Also

Operatori di moltiplicazione e operatori moduloMultiplicative Operators and the Modulus Operator