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çã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