Fundamentos

Operadores aritméticos

Básicos Definiciones Fundamentos

Comenzamos a ver ya los operadores, concretamente los más sencillos por su similitud (por no decir igualdad) con las matemáticas. Éstos son los operadores aritméticos.

Gracias a ellos podremos operar con nuestras variables. O puedes revisar el índice de contenidos para ver todo lo ya hemos publicado y lo que vendrá.

¿Qué es un operador?

Pero, ¿qué es un operador? Sencillamente, un operador es una operación, valga la redundancia, entre uno o más valores que acaba produciendo otro valor. Es fácil tenerlo claro con lo que es un operador tan sencillo como la suma, que coge dos valores y produce un tercero a partir de ellos.

Los operadores aritméticos nos suenan

Sí, nos suenan porque son básicamente las operaciones matemáticas más habituales que todos hemos estudiado desde pequeños en el colegio, excepto quizá por una excepción que veremos más adelante.

Vamos a verlos deteniéndonos en los detalles de algunos de ellos que pueden tener, no ya dificultad en sí, pero sí que podemos ver alguna cosa que nos llame la atención a nivel de lo que es un programa informático.

Identidad y negación

Puedo imaginar que quizá no esperábais estos operadores, pero es justo nombrarlos porque, aunque podamos tener claro qué hacen, no está de más comentarlo.

El operador de identidad se expresa con el signo + y se define como identidad porque simplemente reafirma el valor. En ocasiones puede ser para un cambio de tipos, que no entraremos ahora en ello.

En cuanto al operador de negación, tenemos la versión opuesta del anterior. Este operador se expresa con el signo – para cambiar el valor a su opuesto. Veamos los sencillos operadores en nuestro pseudocódigo.

El operador de identidad se expresa como...
+MI_VALOR

El operador de negación se expresa como...
-MI_VALOR

Adición y sustracción

O, lo que es lo mismo, suma y resta. Estos operadores se expresan igual que los anteriores, con el signo + y el signo –, pero en esta ocasión son operadores aritméticos binarios, pues implican dos valores.

Nota
En algunos lenguajes de programación los operadores + y – también se utilizan para concatenar cadenas y otros usos. Como no ocurre en todos los lenguajes y, además, en PHP, que estamos utilizando como base, tampoco es así, no vamos a comentarlo.

No está de más ver un ejemplo de utilización pese a su sencillez.

El operador de adición se expresa como...
PRIMER_VALOR + SEGUNDO_VALOR

El operador de sustracción se expresa como...
PRIMER_VALOR - SEGUNDO_VALOR

Multiplicación y división

De nuevo sencillos, pero aquí empezaremos con algunos matices que tienen que ver con los tipos de datos y que afectan, especialmente, al operador de división. También comentar los símbolos que se utilizan para su uso, pues no se utiliza la típica x para la multiplicación ya que se puede confundir fácilmente con una letra (también con una variable en otros lenguajes).

Para multiplicar valores utilizamos el signo * y para dividirlos el signo /, es decir, un asterisco para la multiplicación y una barra inclinada para la división. Recordemos que la barra inclinada también se usaba con otros propósitos para definir comentarios en PHP y otros lenguajes.

Vemos primero el ejemplo de estos operadores y luego comentamos un detalle muy importante en cuanto a la división.

El operador de multiplicación se expresa como...
PRIMER_VALOR * SEGUNDO_VALOR

El operador de división se expresa como...
PRIMER_VALOR / SEGUNDO_VALOR

¿Por qué hay que tener cuidado con la división? Debido a los tipos de datos.

Mucho cuidado con la división

Suponemos que tenemos dos variables que almacenan dos números enteros, por ejemplo el valor 1 y el valor 2. En nuestra cabeza, si hacemos la división 1/2 lo resolvemos como 0.5 y listo. Pero en el mundo de la programación no siempre es tan sencillo y nos podemos encontrar con resultados inesperados.

Si ejecutamos esa división en algunos lenguajes de programación, como por ejemplo en C o en Java, vemos que el resultado que nos da… es 0. ¿Qué ha ocurrido? Este lenguaje, y muchos otros, mantienen los tipos de datos. Es decir, si le pasamos un entero con valor 1 y un entero con valor 2, el resultado va a ser un entero. Como 0.5 no es un número entero, entonces obvia la parte decimal y muestra que el resultado es 0. Si dividiéramos 5 entre 2, el resultado en vez de 2.5 sería 2. No hace falta decir que esta tremenda inexactitud puede acarrear muchos problemas en multitud de situaciones donde necesitamos el valor decimal.

Pese a ello, hay lenguajes de programación, como el propio PHP, sobre los cuales los tipos de datos se cambian dinámicamente por el propio programa, por lo que dividir 1 entre 2 sí nos daría un 0.5 en PHP. Pero como estamos definiendo ahora los operadores y ésto no se da en todos los lenguajes, es buena idea que nos acostumbremos (obliguemos en esos lenguajes) a que cuando vayamos a utilizar divisiones utilicemos números decimales. Podemos cambiar la división 1/2 por un sencillo 1/2.0 para transformar el segundo valor en decimal y forzar a que el resultado sea en decimal.

Exponenciación

Tampoco tenemos mucho que decir en cuanto a la exponenciación, excepto que su representación puede ser distinta en varios lenguajes de programación. Y, más importante aún, en algunos ni siquiera existe este operador y la exponenciación se realiza con otros métodos.

Sencillamente, será el resultado de elevar un número a la potencia indicada. Se indica normalmente con el símbolo ** (o también con el símbolo ^), un doble asterisco que indicaría que 2**3 sería 2 elevado a 3. Lo vemos en este ejemplo.

El operador de exponenciación (en algunos lenguajes) se expresa como...
VALOR_BASE ** VALOR_AL_QUE_SE_ELEVA

Módulo

He dejado para el final el operador menos conocido si no posees ningún conocimiento de programación. Es el operador módulo y normalmente se expresa con el símbolo del porcentaje %. Este operador nos devuelve el resto de dividir un valor por otro.

Dicho así parece extraño. Veámoslo con un ejemplo, 5%3. ¿Cuál sería el resultado del módulo de 5 entre 3? Pues sería un 2, pues el resto de la división de 5 entre 3 es un 2 (la división nos daría 1.666666).

A primera vista puede parecer que es un operador sin mucho uso, pero nos puede venir muy bien para calcular ciertas cosas. Un ejemplo muy sencillo es para calcular qué números son pares. Supongamos que nuestro programa cuenta del 1 hasta el 10 y que, cada vez que cuenta un número par, hace algo distinto. Para ello utilizamos el operador módulo, pues en este caso el módulo de una división exacta (4 dividido entre 2 por ejemplo) será 0, pues ése es su resto. Mientras que el módulo de una división inexacta (5 dividido entre 2 por ejemplo) será 1. Así, cuando el módulo sea 0 estamos en un número par y cuando sea 1 estamos en un número impar.

El operador de módulo se expresa como...
PRIMER_VALOR % SEGUNDO_VALOR

Conclusión de los operadores aritméticos

Hemos visto los operadores aritméticos, de los más sencillos que vamos a utilizar y que tienen grandes similitudes con las matemáticas básicas. Eso sí, debemos siempre prestar atención a situaciones en las que el número se pueda desbordar, en los cambios de tipos de datos en divisiones y otros pequeños detalles.

En el próximo artículo veremos más operadores como los de asignación, incremento u operadores para cadenas.

Deja una respuesta