Entrada

Operadores bitwise en Python

Python: Operadores bitwise en Python

Los operadores bitwise en Python permiten manipular directamente los bits individuales de números enteros. Son especialmente útiles cuando se requiere trabajar a bajo nivel, optimizar operaciones, manejar banderas (flags) o realizar cálculos eficientes sobre valores binarios.

Estos operadores actúan sobre la representación binaria de los números y permiten realizar operaciones como AND, OR, XOR, desplazamientos de bits y complemento.

Operadores bitwise disponibles en Python

OperadorNombreDescripción
&AND bit a bitCompara bits y devuelve 1 si ambos son 1
|OR bit a bitDevuelve 1 si al menos uno de los bits es 1
^XOR bit a bitDevuelve 1 si los bits son diferentes
<<Desplazamiento a la izquierdaMueve los bits hacia la izquierda
>>Desplazamiento a la derechaMueve los bits hacia la derecha
~ComplementoInvierte todos los bits del número

Operador AND &

El operador AND compara cada bit de dos números y devuelve 1 solo si ambos bits son 1. Por ejemplo

1
2
3
4
5
a = 10  # 1010 en binario
b = 3   # 0011 en binario

resultado = a & b
print(resultado)  # 2

Explicación:

1
2
3
4
1010
0011
----
0010  → 2

Operador OR |

El operador OR devuelve 1 si al menos uno de los bits es 1. Por ejemplo:

1
2
3
4
5
a = 10  # 1010 en binario
b = 3   # 0011 en binario

resultado = a | b
print(resultado)  # 11

Explicación:

1
2
3
4
1010
0011
----
1011  → 11

Operador XOR ^

El operador XOR devuelve 1 cuando los bits son diferentes, y 0 cuando son iguales. Por ejemplo:

1
2
3
4
5
a = 10  # 1010 en binario
b = 3   # 0011 en binario

resultado = a ^ b
print(resultado)  # 9

Explicación:

1
2
3
4
1010
0011
----
1001  → 9

Desplazamiento a la izquierda «

Los operadores de desplazamiento mueven los bits de un número hacia la izquierda o derecha. Por ejemplo:

1
2
3
4
a = 5   # 101 en binario

resultado = a << 2
print(resultado)  # 20

Explicación:

1
101 << 2 = 10100  → 20

Cada desplazamiento a la izquierda equivale a multiplicar por 2.

Desplazamiento a la derecha »

1
2
3
4
a = 20  # 10100 en binario

resultado = a >> 2
print(resultado)  # 5

Explicación:

1
10100 >> 2 = 101  → 5

Cada desplazamiento a la derecha equivale a dividir por 2 (parte entera).

Operador de complemento ~

El operador de complemento invierte todos los bits del número. En Python, esto se realiza usando complemento a dos, por lo que el resultado suele ser un número negativo.

1
2
3
4
a = 5   # 101 en binario

resultado = ~a
print(resultado)  # -6

Explicación:

1
~5 = -(5 + 1) = -6

Los operadores bitwise no son comunes en código cotidiano, pero son muy útiles en programación de sistemas, manejo de permisos, criptografía y optimización.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.