07/03/2021
En el corazón de cada videojuego, aplicación o página web, existe una lógica fundamental que dicta cómo se comportan los datos. Esta lógica se construye a partir de piezas esenciales conocidas como operadores y operandos. Comprender su funcionamiento no es solo un paso más en el aprendizaje de la programación; es descifrar el lenguaje con el que le damos instrucciones a las máquinas. Son los ladrillos y el cemento con los que construimos desde la operación más simple, como sumar dos números, hasta los algoritmos más complejos que dan vida a mundos virtuales. En este artículo, nos sumergiremos en este concepto clave, desglosando qué son, qué tipos existen y cómo su orden de ejecución puede cambiar drásticamente el resultado de nuestro código.

¿Qué son los Operadores y los Operandos? La Dupla Fundamental
Para entender cualquier lenguaje de programación, primero debemos conocer a sus dos protagonistas principales en cualquier expresión: el operador y el operando.
El Operando: La Materia Prima
Un operando es simplemente un valor o un dato con el que trabajamos. Piensa en él como el ingrediente de una receta. Puede ser un número escrito directamente en el código (como `5` o `10.5`), un fragmento de texto (como `"Hola Mundo"`), el valor de una variable (como `puntos_de_vida`), una constante (como `PI`) o incluso el resultado que devuelve una función. En esencia, es la información que será manipulada.
El Operador: La Acción a Realizar
El operador es el símbolo o la palabra que indica qué acción se debe realizar con los operandos. Siguiendo la analogía de la receta, el operador sería la instrucción: "sumar", "mezclar", "comparar". Por ejemplo, en la expresión matemática `7 + 3`, los números `7` y `3` son los operandos, y el símbolo `+` es el operador que nos indica que debemos sumarlos.
Explorando el Universo de los Operadores
Los operadores no son todos iguales. Se clasifican en diferentes familias según el tipo de operación que realizan. Conocerlas es vital para poder escribir código funcional y lógico. Veamos las más comunes que encontrarás en la gran mayoría de lenguajes de programación.
Operadores Aritméticos: Las Matemáticas en tu Código
Son los más familiares, ya que los hemos usado desde la escuela. Permiten realizar operaciones matemáticas básicas. Su comportamiento es intuitivo: si trabajas con números enteros, el resultado suele ser entero (salvo en la división); si al menos un operando es un número con decimales (real), el resultado será real.
- Suma (+): Agrega dos valores. `10 + 5` resulta en `15`.
- Resta (-): Sustrae un valor de otro. `10 - 5` resulta en `5`.
- Multiplicación (*): Multiplica dos valores. `10 * 5` resulta en `50`.
- División (/): Divide un valor por otro. `10 / 5` resulta en `2`.
- Módulo (% o mod): Devuelve el residuo de una división entera. Es increíblemente útil para saber si un número es par o impar, entre otras cosas. `10 % 3` resulta en `1`, porque 10 dividido entre 3 es 3 con un resto de 1.
- Exponenciación (^ o ): Eleva un valor a la potencia de otro. `2 3` resulta en `8`.
Operadores Relacionales: El Arte de Comparar
Estos operadores no devuelven un número, sino un valor lógico o booleano: `verdadero` (true) o `falso` (false). Su única misión es comparar dos operandos y decirnos cuál es la relación entre ellos. Son la base de todas las decisiones en un programa.
- Igual a (==): Comprueba si dos valores son idénticos. ¡Cuidado! No confundir con `=`, que es para asignar un valor a una variable. `5 == 5` es `verdadero`.
- Distinto de (!= o <>): Comprueba si dos valores no son iguales. `5 != 10` es `verdadero`.
- Mayor que (>): Comprueba si el operando de la izquierda es mayor que el de la derecha. `10 > 5` es `verdadero`.
- Menor que (<): Comprueba si el operando de la izquierda es menor que el de la derecha. `10 < 5` es `falso`.
- Mayor o igual que (>=): `10 >= 10` es `verdadero`.
- Menor o igual que (<=): `5 <= 10` es `verdadero`.
Operadores Lógicos: Construyendo Lógica Completa
Cuando necesitamos combinar varias comparaciones, entran en juego los operadores lógicos. Sus operandos no son números, sino los valores booleanos (`verdadero` o `falso`) que obtenemos de los operadores relacionales.
Operador AND (Y Lógico)
El operador `AND` (a menudo representado como `&&`) devuelve `verdadero` únicamente si ambos operandos son `verdadero`.
| Operando 1 | Operador | Operando 2 | Resultado |
|---|---|---|---|
| Verdadero | AND | Verdadero | Verdadero |
| Verdadero | AND | Falso | Falso |
| Falso | AND | Verdadero | Falso |
| Falso | AND | Falso | Falso |
Operador OR (O Lógico)
El operador `OR` (a menudo `||`) devuelve `verdadero` si al menos uno de los operandos es `verdadero`.
| Operando 1 | Operador | Operando 2 | Resultado |
|---|---|---|---|
| Verdadero | OR | Verdadero | Verdadero |
| Verdadero | OR | Falso | Verdadero |
| Falso | OR | Verdadero | Verdadero |
| Falso | OR | Falso | Falso |
Operador NOT (Negación)
El operador `NOT` (a menudo `!`) es el más simple: invierte el valor booleano de su único operando. Lo que es `verdadero` lo convierte en `falso`, y viceversa.

Operadores Alfanuméricos: Trabajando con Texto
Cuando los operandos son cadenas de texto, el operador más común es el de concatenación. Generalmente se usa el mismo símbolo que la suma (`+`), pero su función es unir textos.
Por ejemplo: `nombre = "Juan"`, `apellido = "Pérez"`. La expresión `nombre + " " + apellido` daría como resultado la cadena `"Juan Pérez"`. Es importante notar que el espacio intermedio tuvimos que añadirlo como un operando más.
El Orden Importa: Precedencia de Operadores
¿Qué sucede cuando tenemos varios operadores en una misma línea, como `4 + 2 * 5`? El resultado podría ser `30` (si sumamos primero) o `14` (si multiplicamos primero). Para evitar esta ambigüedad, los lenguajes de programación establecen reglas de precedencia o prioridad, muy similares a las de las matemáticas.
La jerarquía general, de mayor a menor prioridad, suele ser:
- Paréntesis `()`: Lo que esté dentro de un paréntesis siempre se evalúa primero. Si hay paréntesis anidados, se resuelven desde el más interno hacia el más externo.
- Exponenciación `^` o `**`.
- Multiplicación `*`, División `/` y Módulo `%`: Tienen la misma prioridad y se evalúan de izquierda a derecha.
- Suma `+` y Resta `-`: También tienen igual prioridad y se evalúan de izquierda a derecha.
- Operadores Relacionales `>` `<` `==` etc.
- Operadores Lógicos: Primero se evalúa `NOT`, luego `AND` y finalmente `OR`.
Así, en `4 + 2 * 5`, la multiplicación tiene mayor precedencia que la suma, por lo que primero se resuelve `2 * 5` (10) y luego `4 + 10`, dando el resultado correcto: `14`. Si quisiéramos sumar primero, deberíamos usar paréntesis: `(4 + 2) * 5`, lo que resultaría en `30`.
Preguntas Frecuentes (FAQ) sobre Operadores y Operandos
¿Cuál es la diferencia entre el operador `=` y `==`?
Esta es una de las dudas más comunes al empezar. El operador de un solo igual (`=`) es el operador de asignación. Su función es guardar el valor de la derecha en la variable de la izquierda. Por ejemplo, `edad = 18` almacena el número 18 en la variable `edad`. En cambio, el operador de doble igual (`==`) es el operador de comparación. Su función es preguntar si los valores a ambos lados son iguales, y devuelve `verdadero` o `falso`. `edad == 18` preguntaría "¿El valor de la variable edad es igual a 18?".
¿Todos los lenguajes usan los mismos símbolos para los operadores?
No siempre, aunque hay un estándar muy extendido heredado de lenguajes como C. Por ejemplo, el operador de "distinto de" puede ser `!=` en Java, C# o JavaScript, pero `<>` en otros como SQL. El módulo es `%` en muchos lenguajes, pero la palabra `mod` en otros. Siempre es una buena práctica revisar la documentación específica del lenguaje con el que estás trabajando.
¿Qué es un operando en código máquina?
A un nivel mucho más bajo, cerca del hardware, una instrucción de código máquina se compone de un "opcode" (código de operación) y, a menudo, uno o más operandos. El opcode le dice a la CPU qué hacer (sumar, mover un dato, etc.), y el operando le dice con qué datos hacerlo. Este operando puede ser un valor directo o, más comúnmente, una dirección de memoria o un registro de la CPU donde se encuentra el dato real.
¿Puedo comparar tipos de datos diferentes?
Depende del lenguaje. Los lenguajes de tipado fuerte (como Java o C#) suelen ser muy estrictos y no te permitirán comparar directamente un número con una cadena de texto, generando un error. En cambio, los lenguajes de tipado dinámico (como JavaScript o Python) son más flexibles y pueden intentar convertir los tipos para realizar la comparación, aunque esto a veces puede llevar a resultados inesperados.
En resumen, los operadores y operandos son los componentes básicos de la lógica de programación. Dominar sus tipos, su funcionamiento y, sobre todo, su orden de precedencia, te dará el control necesario para escribir código preciso, eficiente y libre de errores. Son las herramientas con las que transformamos datos estáticos en aplicaciones dinámicas e interactivas.
Si quieres conocer otros artículos parecidos a Operadores y Operandos: El ADN del Código puedes visitar la categoría Juegos.
