Compartilhar via


Os operadores multiplicativos: *, / e %

 expression * expression 
 expression / expression 
 expression % expression

Comentários

Os operadores multiplicativos são:

  • Multiplicação (*)

  • Divisão (/)

  • Módulo (restante da divisão) (%)

Esses operadores binários tem associatividade da esquerda para a direita.

Os operadores multiplicativos usam operandos de tipos de aritméticos.O operador de módulo (%) tem um requisito de mais rígido em que os operandos devem ser do tipo integral.(Para obter o resto de uma divisão de ponto flutuante, use a função de tempo de execução, fmod.) As conversões são abordadas na Aritmética conversões são aplicados a operandos, e o resultado é do tipo convertido.

O operador de multiplicação, o resultado da multiplicação o primeiro operando por segundo.

O operador de divisão, o resultado de dividir o primeiro operando por segundo.

O operador modulus produz o restante fornecido pela expressão a seguir, onde e1 é o primeiro operando e e2 é o segundo: e1 – (e1 / e2) * e2, onde os dois operandos forem dos tipos integrais.

Divisão por 0 em uma divisão ou uma expressão do módulo é indefinido e causa um erro em tempo de execução.Portanto, as expressões a seguir geram resultados incorretos indefinidos:

i % 0
f / 0.0

Se ambos os operandos como uma expressão de multiplicação, divisão ou módulo tem o mesmo sinal, o resultado é positivo.Caso contrário, o resultado é negativo.O resultado do sinal da operação de um módulo é definidos na implementação.

ObservaçãoObservação

Como as conversões realizadas por operadores multiplicativos fornece para estouro positivo ou condições, informações podem ser perdidas se o resultado de uma operação multiplicativos não pode ser representado no tipo de operandos após a conversão.

Específicos do Microsoft

No C++ da Microsoft, o resultado de uma expressão do módulo é sempre o mesmo que o sinal do primeiro operando.

Específicos do Microsoft final

Se a divisão computada de dois inteiros é inexata e apenas um operando for negativo, o resultado é o maior inteiro (em magnitude, desconsiderando o sinal) que é menor que o valor exato que produziria a operação de divisão.Por exemplo, o valor calculado de –11 / 3 é –3.666666666.O resultado dessa divisão integral é – 3.

A relação entre os operadores multiplicativos é dado por identidade (e1 / e2) * e2 + e1 % e2 = = e1.

Exemplo

O programa a seguir demonstra os operadores multiplicativos.Observe que qualquer operador de 10 / 3 deve ser explicitamente convertida para o tipo float para evitar o truncamento para que os dois operandos forem do tipo float antes da divisão.

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

Consulte também

Referência

Expressões com operadores binários

Operadores do C++

Precedência e associatividade de operadores

C operadores multiplicativos