Operadores aritméticos¶
Permiten realizar operaciones aritméticas sobre sus operandos.
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 por5
. El resultado obtenido para la expresión sería25
.Por el contrario, otros calcularán en primer lugar el producto
2 * 5
para, finalmente, sumar al resultado3
. El resultado obtenido será en este caso13
.
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:
Se evalúan las expresiones entre paréntesis
Potencias (C++ no dispone de un operador nativo, pero otros lenguajes como Python sí)
Multiplicación, división y resto de la división entera
Suma y resta
Precedencia |
Operador |
Descripción |
Asociatividad |
---|---|---|---|
1 |
|
Resolución de ámbito |
Izquierda a derecha |
2 |
|
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)