CURSO GRATUITO · MÓDULO 3 · LECCIÓN 3.5

Operadores lógicos y operaciones bit a bit

Combina condiciones, toma decisiones, automatiza repeticiones y procesa listas con operadores lógicos, bit a bit y ordenamiento.

Todas las lecciones son gratuitas. Puedes leer y practicar sin crear una cuenta.

Al terminar podrás

  • Combinar condiciones con and, or y not.
  • Diferenciar los operadores lógicos de los operadores bit a bit.
  • Calcular operaciones AND (&), OR (|) y XOR (^) sobre enteros.
  • Interpretar desplazamientos de bits con << y >>.

Vamos paso a paso

and exige que ambas condiciones sean verdaderas; or requiere que al menos una lo sea y not invierte un valor booleano. Estos operadores expresan reglas compuestas, como comprobar que una cuenta esté activa y tenga saldo suficiente.

Los operadores bit a bit trabajan con los bits de números enteros. Aunque sus símbolos se parecen a los operadores lógicos, no hacen lo mismo: and, or y not evalúan condiciones; &, |, ^, ~, << y >> modifican o comparan posiciones binarias.

Para practicar, escribe 5 como 0101 y 3 como 0011. Con &: solo queda 1 donde ambos tienen 1, por eso 0101 & 0011 = 0001 (1). Con |: queda 1 donde al menos uno tiene 1, por eso el resultado es 0111 (7). Con ^: queda 1 donde los bits son distintos, por eso el resultado es 0110 (6).

Los desplazamientos mueven las posiciones binarias: 5 << 1 desplaza los bits una posición a la izquierda y produce 10; 5 >> 1 los mueve una posición a la derecha y produce 2. El operador ~ invierte los bits; en Python, ~5 produce -6. Se presenta aquí como lectura y no se exige en el ejercicio.

EJEMPLO EN PYTHON

activo = True
saldo = 1200

# Operadores logicos: evalúan condiciones
print(activo and saldo >= 1000)
print(not activo)

# Operadores bit a bit: trabajan con enteros
print(5 & 3)   # AND: 0001 -> 1
print(5 | 3)   # OR:  0111 -> 7
print(5 ^ 3)   # XOR: 0110 -> 6
print(5 << 1)  # Desplazar a la izquierda -> 10
print(5 >> 1)  # Desplazar a la derecha -> 2
print(~5)      # Invertir bits -> -6

RESULTADO

True
False
1
7
6
10
2
-6

¿Qué está pasando?

  1. and combina las dos condiciones: activo debe ser True y el saldo debe alcanzar 1000.
  2. not invierte el booleano. Como activo vale True, not activo muestra False.
  3. Alinea los bits: 5 = 0101 y 3 = 0011. Cada columna representa una posición.
  4. AND (&) conserva una posición solo cuando los dos bits son 1: 0101 & 0011 = 0001, que vale 1.
  5. OR (|) conserva una posición cuando uno o ambos bits son 1: 0101 | 0011 = 0111, que vale 7.
  6. XOR (^) conserva una posición cuando los bits son distintos: 0101 ^ 0011 = 0110, que vale 6.
  7. El desplazamiento << 1 mueve los bits una posición a la izquierda (5 pasa a 10); >> 1 los mueve a la derecha (5 pasa a 2).
  8. ~ invierte los bits; en Python ~5 da -6. Lo observas en el ejemplo, pero no se pide calcularlo en el ejercicio inicial.

Errores que conviene evitar

  • Usar & como sustituto automático de and: uno opera bits de enteros y el otro combina condiciones.
  • Confundir | con or: sus símbolos se parecen, pero sus operandos y resultados no son equivalentes.
  • En XOR (^), pensar que basta con que uno de los bits sea 1; cuando ambos son 1, el resultado de esa posición es 0.
  • Leer 0101 como un número decimal; en este ejemplo es la escritura binaria de 5.
  • Olvidar que un desplazamiento mueve posiciones binarias y no compara dos condiciones.

AHORA TE TOCA A TI

Combinar condiciones y calcular bits

Crea edad = 22, tiene_entrada = True, permisos = 5 y solicitud = 3. Muestra si la persona puede entrar con and. Después calcula permisos & solicitud, permisos | solicitud y permisos ^ solicitud. También calcula permisos << 1 y permisos >> 1 para desplazar los bits una posición a la izquierda y otra a la derecha. Muestra cada resultado en una línea distinta.

PISTAS

  • La condición lógica se escribe edad >= 18 and tiene_entrada.
  • Usa permisos & solicitud para conservar los bits que están activos en ambos enteros.
  • Usa permisos | solicitud para combinar las posiciones activas.
  • Usa permisos ^ solicitud para conservar las posiciones donde los bits son distintos.
  • Usa permisos << 1 para desplazar una posición a la izquierda y permisos >> 1 para hacerlo a la derecha.

Tu espacio de trabajo

Cómo usar este laboratorio

Python · nivel principiante
  1. 01EscribeModifica el archivo main.py en el editor.
  2. 02EjecutaCorre tu programa o comprueba el ejercicio.
  3. 03ObservaRevisa la consola y, cuando corresponda, el gráfico.
Instrucciones de esta actividad

Crea edad = 22, tiene_entrada = True, permisos = 5 y solicitud = 3. Muestra si la persona puede entrar con and. Después calcula permisos & solicitud, permisos | solicitud y permisos ^ solicitud. También calcula permisos << 1 y permisos >> 1 para desplazar los bits una posición a la izquierda y otra a la derecha. Muestra cada resultado en una línea distinta.

Entorno de desarrollo

Laboratorio de Python

Al ejecutar se inicia Python
main.pyPYTHON
Archivo de práctica
Loading...

Teclas útiles en el móvil

Python en el navegador · entorno aislado9 líneas