Los operadores bitwise en Python permiten manipular los bits individuales de números enteros. Son útiles para realizar operaciones a nivel de bits, como desplazamiento, AND, OR, XOR y complemento.
Los operadores bitwise en Python son los siguientes:
Operador | Descripción |
---|---|
AND (&) | Realiza una operación AND bit a bit |
OR (|) | Realiza una operación OR bit a bit |
XOR (^) | Realiza una operación XOR bit a bit |
Desplazamiento Izquierda (<<) | Desplaza los bits a la izquierda |
Desplazamiento Derecha (>>) | Desplaza los bits a la derecha |
Complemento (~) | Devuelve el complemento a uno del número |
Operador AND &
El operador AND (&
) compara cada bit de dos operandos y devuelve 1 si ambos bits son 1, de lo contrario devuelve 0.
# Ejemplo de operador AND
a = 10 # 1010 en binario
b = 3 # 0011 en binario
resultado = a & b
print(resultado) # Salida: 2
# Explicación: 1010 & 0011 = 0010 (decimal 2)
Operador OR |
El operador OR (|
) compara cada bit de dos operandos y devuelve 1 si al menos uno de los bits es 1.
# Ejemplo de operador OR
a = 10 # 1010 en binario
b = 3 # 0011 en binario
resultado = a | b
print(resultado) # Salida: 11
# Explicación: 1010 | 0011 = 1011 (decimal 11)
Operador XOR ^
El operador XOR (^
) compara cada bit de dos operandos y devuelve 1 si exactamente uno de los bits es 1, pero no ambos.
# Ejemplo de operador XOR
a = 10 # 1010 en binario
b = 3 # 0011 en binario
resultado = a ^ b
print(resultado) # Salida: 9
# Explicación: 1010 ^ 0011 = 1001 (decimal 9)
Operadores de desplazamiento
Los operadores de desplazamiento mueven los bits de un número hacia la izquierda (<<
) o hacia la derecha (>>
) en la cantidad especificada.
Ejemplo de Desplazamiento Izquierda
# Ejemplo de desplazamiento izquierda
a = 5 # 101 en binario
resultado = a << 2
print(resultado) # Salida: 20
# Explicación: 101 << 2 = 10100 (decimal 20)
Ejemplo de Desplazamiento Derecha
# Ejemplo de desplazamiento derecha
a = 20 # 10100 en binario
resultado = a >> 2
print(resultado) # Salida: 5
# Explicación: 10100 >> 2 = 101 (decimal 5)
Operador de complemento ~
El operador de complemento (~
) invierte todos los bits de un número.
# Ejemplo de operador de complemento
a = 5 # 101 en binario
resultado = ~a
print(resultado) # Salida: -6
# Explicación: ~101 = -110 (en complemento a dos, -6 en decimal)