Operadores aritméticos

Permiten realizar operaciones aritméticas sobre sus operandos.

Operadores aritméticos

Operador

Descripción

+

suma

-

resta

*

producto

/

división

%

resto de la división entera

Atención

El operador aritmético % sólo es aplicable a datos enteros. Por ejemplo: 23%5 es 3. Equivale a 23-(23/5)*5

Cada operación realizada con los operandos genera un resultado que se almacenará en alguna posición de memoria.

El tipo del valor generado y, por tanto, su representación interna, dependerá de los tipos de los operandos.

Reglas de precedencia

Cuando se combinan diferentes operadores, el valor determinado por una expresión se calcula siguiendo un orden de evaluación en función de unas reglas de precedencia.

La siguiente expresión ilustra la necesidad de disponer de reglas de precedencia.

3 + 2 * 5
  • Habrá quien realice en primer lugar la operación 3 + 2 para, a continuación, multiplicar el resultado por 5. El resultado obtenido para la expresión sería 25.

  • Por el contrario, otros calcularán en primer lugar el producto 2 * 5 para, finalmente, sumar al resultado 3. El resultado obtenido será en este caso 13.

En C++ y otros muchos lenguajes, se sigue el orden normal establecido en la aritmética, realizándose las operaciones de izquierda a derecha siguiendo el siguiente orden:

  1. Se evalúan las expresiones entre paréntesis

  2. Potencias (C++ no dispone de un operador nativo, pero otros lenguajes como Python sí)

  3. Multiplicación, división y resto de la división entera

  4. Suma y resta

Precedencia de los operadores utilizados hasta el momento

Precedencia

Operador

Descripción

Asociatividad

1

::

Resolución de ámbito

Izquierda a derecha

2

(expresion)

Expresión entre paréntesis

Izquierda a derecha

5

* / %

Multiplicación, división y división entera

Izquierda a derecha

6

+ -

Suma y resta

Izquierda a derecha

7

<< >>

Extracción e inserción

Izquierda a derecha

16

=

Asignación

Derecha a izquierda

Véase la tabla de precedencia completa de C++.

La columna de la izquierda de la tabla indica el rango u orden de precedencia. Nótese que, a excepción del operador ::, del que ya hemos hablado con anterioridad, las expresiones entre paréntesis están en el nivel 2.

Por ello, el uso de paréntesis es una excelente estrategia para determinar de forma clara qué operaciones se desean realizar en primer lugar.

Veámoslo en el siguiente ejemplo:

// Operaciones con constantes literales enteras
(3 + 2)*5         // 1º) (3 + 2) 2º) 5*5: Resultado 25
(3 + 2)*12/5      // 1º) (3 + 2), 2º) 5*12, 3º) 60/5: Resultado 12
(3 + 2)*(12/5)    // 1º) (3 + 2), 2º) (12/5) 3º) 5*2: Resultado 10

Edita, compila y ejecuta el código

Se pueden anidar paréntesis tanto como se necesite.

a*(((b + 2) + 3) + z)