Compartir a través de


Operadores multiplicativos: *,/, y %

 expression * expression 
 expression / expression 
 expression % expression

Comentarios

los operadores multiplicativos son:

  • multiplicación (*)

  • división (/)

  • módulo (resto de la división) (%)

Estos operadores binarios tienen asociatividad de izquierda a derecha.

los operadores multiplicativos toman operandos de tipos aritméticos.El operador de módulo (%) tiene un requisito más estricto en que los operandos deben ser de tipo entero.(Para obtener el resto de una división de coma flotante, utilice la función en tiempo de ejecución, fmod.) Las conversiones descritas en conversiones aritméticas se aplican a los operandos, y el resultado es de tipo convertido.

El operador de multiplicación hace que el resultado de multiplicar el primer operando por segundo.

El operador de división hace que el resultado de dividir el primer operando por segundo.

El operador de módulo produce el resto proporcionado por la expresión siguiente, donde es el primer operando e1 y e2 es el segundo: e1 – (e1 y e2) * e2, donde ambos operandos de tipos enteros.

La división por 0 en una división o expresión de módulo es undefined y produce un error en tiempo de ejecución.Por consiguiente, las expresiones siguientes generan resultados no definidos, error:

i % 0
f / 0.0

Si ambos operandos a una multiplicación, una división, o una expresión de módulo tienen el mismo signo, el resultado es positivo.si no, el resultado es negativo.El resultado del signo de una operación de módulo es implementación-definido.

[!NOTA]

Dado que las conversiones realizadas por los operadores multiplicativos no preven condiciones de desbordamiento o subdesbordamiento de, la información puede ser pierden si el resultado de una operación multiplicativa no se puede representar en el tipo de los operandos después de la conversión.

Específicos de Microsoft

En Microsoft C++, el resultado de una expresión de módulo siempre es el mismo que el signo del primer operando.

Específico de Microsoft de FINAL

Si la división calculada de dos enteros es inexacta y un solo operando es negativo, el resultado es el entero más grande (en magnitud, sin hacer caso de signo) que es menor que el valor exacto la operación de división produciría.por ejemplo, el valor calculado de – 11/3 es – 3,666666666.El resultado de la división de enteros es – 3.

La relación entre los operadores multiplicativos está determinada por la identidad (e1 y e2) * e2 + == e2e1e el 1% .

Ejemplo

El siguiente programa muestra los operadores multiplicativos.Observe que alguno de 10 / 3 debe ser conversión explícita para escribir float para evitar el truncamiento de manera que los dos operandos son de float tipo antes de división.

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

Vea también

Referencia

Expresiones con operadores binarios

Operadores de C++

Operador Prioridad y Asociatividad

Operadores multiplicativos de C