Post

Java / Operadores Asignación

Operadores de asignación en Java

Java / Operadores Asignación

Los operadores de asignación se utilizan para asignar valores a las variables.

OperadorEjemploEquivalenteDescripción
=x = 5x = 5Asigna un valor a la variable
+=x += 3x = x + 3Suma y asigna el resultado
-=x -= 3x = x - 3Resta y asigna el resultado
*=x *= 3x = x * 3Multiplica y asigna el resultado
/=x /= 3x = x / 3Divide y asigna el resultado
%=x %= 3x = x % 3Calcula el resto y asigna el resultado
&=x &= 3x = x & 3AND bit a bit y asigna el resultado
\|=x \|= 3x = x \| 3OR bit a bit y asigna el resultado
^=x ^= 3x = x ^ 3XOR bit a bit y asigna el resultado
>>=x >>= 3x = x >> 3Desplazamiento a la derecha y asigna el resultado
<<=x <<= 3x = x << 3Desplazamiento a la izquierda y asigna el resultado

Los últimos 5 son operadores de asignación bit a bit, es decir, operan sobre los bits individuales del número en binario.

AND bit a bit - &=

Compara cada bit de ambos valores. El resultado es 1 solo si ambos bits son 1.

1
2
3
4
x = 6  →  0110
y = 3  →  0011
         ------
x &= 3 →  0010  =  2

OR bit a bit - |=

El resultado es 1 si al menos uno de los bits es 1.

1
2
3
4
x = 6  →  0110
y = 3  →  0011
         ------
x |= 3 →  0111  =  7

XOR bit a bit - ^=

El resultado es 1 si los bits son distintos entre sí.

1
2
3
4
x = 6  →  0110
y = 3  →  0011
         ------
x ^= 3 →  0101  =  5

Desplazamiento a la derecha - >>=

Mueve los bits hacia la derecha n posiciones. Equivale a dividir entre $2^n$ (descartando decimales).

1
2
x = 8  →  1000
x >>= 3 → 0001  =  1   (8 / 2³ = 1)

Desplazamiento a la izquierda - <<=

El resultado es 1 si los bits son distintos entre sí.

1
2
x = 2  →  0010
x <<= 3 → 10000  =  16  (2 × 2³ = 16)

En la práctica, &=, |= y ^= se usan mucho para manipular flags y máscaras de bits. Los de desplazamiento (>>=, <<=) aparecen más en código de bajo nivel o cuando se optimizan operaciones de multiplicación/división por potencias de 2.

Operadores de comparación

Los operadores de comparación se utilizan para comparar dos valores (o variables). Esto es importante, ya que nos ayuda a encontrar respuestas y tomar decisiones.

El valor de retorno de una comparación es o true o false

OperadorNombreEjemploDescripción
==Igual ax == yDevuelve true si ambos valores son iguales
!=Distinto dex != yDevuelve true si los valores son diferentes
>Mayor quex > yDevuelve true si x es estrictamente mayor que y
<Menor quex < yDevuelve true si x es estrictamente menor que y
>=Mayor o igual quex >= yDevuelve true si x es mayor que y o igual a él
<=Menor o igual quex <= yDevuelve true si x es menor que y o igual a él
1
2
3
4
int edad = 18;

System.out.println(edad >= 18); // true
System.out.println(edad < 18);  // false

Operadores lógicos

Al igual que con los operadores de comparación, los operadores lógicos devuelven true o false.

Los operadores lógicos se utilizan para determinar la lógica entre variables o valores, combinando múltiples condiciones

OperadorNombreDescripciónEjemplo
&&AND lógicoDevuelve true si ambas condiciones son truex < 5 && x < 10
||OR lógicoDevuelve true si alguna condición es truex < 5 \|\| x < 4
!NOT lógicoInvierte el resultado booleano!(x < 5 && x < 10)

El operador ! simplemente invierte el valor booleano: convierte true en false y viceversa.

1
2
3
4
5
boolean a = true;
boolean b = false;

!a  // false
!b  // true

Un detalle útil: Java usa evaluación en cortocircuito (short-circuit evaluation):

  • && — si la primera condición es false, la segunda no se evalúa (ya no puede ser true).
  • || — si la primera condición es true, la segunda no se evalúa (ya es suficiente).
This post is licensed under CC BY 4.0 by the author.