Operatori di moltiplicazione C

Gli operatori di moltiplicazione eseguono operazioni di moltiplicazione (*), divisione (/) e resto (%).

Sintassi

multiplicative-expression: cast-expressionmultiplicative-expression*cast-expressionmultiplicative-expression/cast-expressionmultiplicative-expression%cast-expression

Gli operandi dell'operatore di resto (%) devono essere integrali. Gli operatori di moltiplicazione (*) e divisione (/) possono accettare operandi di tipo integrale o mobile; i tipi degli operandi possono essere diversi.

Gli operatori di moltiplicazione eseguono le tipiche conversioni aritmetiche sugli operandi. Il tipo del risultato è il tipo degli operandi in seguito alla conversione.

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.

Gli operatori moltiplicativi C sono descritti in questa tabella:

Operatore Descrizione
* L'operatore di moltiplicazione consente ai suoi due operandi di essere moltiplicati.
/ L’operatore di divisione consente al primo operando di essere diviso per il secondo. Se due operandi interi sono divisi e il risultato non è un numero intero, viene troncato in base alle regole seguenti:

- Il risultato della divisione per 0 non è definito, in base allo standard ANSI C. Il compilatore C Microsoft genera un errore in fase di compilazione o di esecuzione.

- Se entrambi gli operandi sono positivi o senza segno, il risultato viene troncato verso 0.

- Se uno degli operandi è negativo, se il risultato dell'operazione è il numero intero più grande minore o uguale al quoziente algebrico o è il numero intero più piccolo maggiore o uguale al quoziente algebrico, viene definita l'implementazione. Vedere la sezione specifica di Microsoft.
% Il risultato dell'operatore di resto è il resto quando il primo operando viene diviso per il secondo. Quando la divisione non è esatta, il risultato è determinato dalle seguenti regole:

- Se l'operando destro è zero, il risultato è non definito.

- Se entrambi gli operandi sono positivi o senza segno, il risultato è positivo.

- Se uno degli operandi è negativo e il risultato non è esatto, il risultato è definito dall'implementazione. Vedere la sezione specifica di Microsoft.

Specifico di Microsoft

Nella divisione in cui uno degli operandi è negativo, la direzione del troncamento è verso 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).

Esempio

Le dichiarazioni illustrate di seguito vengono usate per gli esempi seguenti:

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

Questa istruzione utilizza l'operatore di moltiplicazione:

y = x * i;

In questo caso, x viene moltiplicato per i per dare il valore 20.0. Il risultato è di tipo double.

n = i / j;

In questo esempio 10 è diviso per 3. Il risultato viene troncato verso 0, restituendo il valore intero 3.

n = i % j;

Questa istruzione assegna n il resto del numero intero, 1 quando 10 viene diviso per 3.

Specifico di Microsoft

Il segno del resto è uguale al segno del dividendo. Ad esempio:

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

In ogni caso, 50 e 2 hanno lo stesso segno.

END Microsoft Specific

Vedi anche

Operatori moltiplicativi e Operatore modulo