Condividi tramite


Operatore di moltiplicazione: *,/e %

 expression * expression 
 expression / expression 
 expression % expression

Note

gli operatori di moltiplicazione sono:

  • moltiplicazione (*)

  • divisione (o)

  • Modulo (resto di divisione ()%)

Questi operatori binari hanno un'associatività da sinistra a destra.

Gli operandi della rimozione dell'operatore di moltiplicazione dei tipi aritmetici.l'operatore modulo (%presenta un requisito più severi in quanto i propri operandi devono essere di tipo integrale.(Per ottenere il resto della divisione a virgola mobile, utilizzare la funzione in fase di esecuzione, fmod). Le conversioni descritte in conversioni aritmetiche si applica agli operandi e il risultato è di tipo convertito.

Operatore di moltiplicazione dal risultato di moltiplicazione del primo operando per la seconda.

Operatore di divisione dal risultato della divisione del primo operando dal secondo.

L'operatore modulo restituisce il resto fornito dalla seguente espressione, dove e1 è il primo operando e e2 è il secondo: e1 - (e1 o e2) * e2, in cui entrambi gli operandi sono dei tipi integrali.

La divisione per 0 in una divisione in un'espressione o del modulo viene definito e causa un errore di runtime.Di conseguenza, le espressioni seguenti generano risultati non definiti e l'elaborazione:

i % 0
f / 0.0

Se entrambi gli operandi in una moltiplicazione, una divisione, o a un'espressione di modulo hanno lo stesso segno, il risultato è positivo.In caso contrario, il risultato è negativo.Il risultato del segno di un'operazione modulo è implementazione-definito.

[!NOTA]

Poiché le conversioni eseguite dagli operatori di moltiplicazione non prevedono gli stati di underflow o di overflow, le informazioni vadano perse se il risultato di un'operazione moltiplicativa non può essere rappresentato nel tipo degli operandi dopo la conversione.

Specifici di Microsoft

In Microsoft C++, il risultato di un'espressione di modulo è sempre uguale al segno del primo operando.

Microsoft FINALE specifico

Se la divisione calcolata di due numeri interi è inesatta e un solo operando è negativo, il risultato è il numero intero massimo (nella grandezza, disconsiderando il segno) minore del valore esatto dell'operazione di divisione avrebbe prodotto.Ad esempio, il valore calcolato - 11 e 3 sono a 3,666666666.Il risultato della divisione integrale è a 3.

La relazione tra gli operatori di moltiplicazione viene fornita dall'identità (e1 o e2) * e2 + e1 % e2 == e1.

Esempio

Il programma seguente vengono illustrati gli operatori di moltiplicazione.Si noti che uno degli operandi di 10 / 3 deve essere esplicitamente eseguire il cast al tipo float per evitare troncamento in modo che entrambi gli operandi siano di tipo float prima di divisione.

// 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;
}

Vedere anche

Riferimenti

Espressioni con gli operatori binari

Operatori di C++

Precedenza e associatività di operatore

Operatore di moltiplicazione c