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 -> -6RESULTADO
True False 1 7 6 10 2 -6
¿Qué está pasando?
- and combina las dos condiciones: activo debe ser True y el saldo debe alcanzar 1000.
- not invierte el booleano. Como activo vale True, not activo muestra False.
- Alinea los bits: 5 = 0101 y 3 = 0011. Cada columna representa una posición.
- AND (&) conserva una posición solo cuando los dos bits son 1: 0101 & 0011 = 0001, que vale 1.
- OR (|) conserva una posición cuando uno o ambos bits son 1: 0101 | 0011 = 0111, que vale 7.
- XOR (^) conserva una posición cuando los bits son distintos: 0101 ^ 0011 = 0110, que vale 6.
- 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).
- ~ 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
- 01EscribeModifica el archivo main.py en el editor.
- 02EjecutaCorre tu programa o comprueba el ejercicio.
- 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
Teclas útiles en el móvil