¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Calcular la salida de un circuito (puertas lógicas)

Después de esta lección: Puedo calcular la salida de un circuito lógico.

Lección de 50 min3 comandosLaboratorio de compiladores y arquitectura: gcc, flex, bison y RISC-V en una VM

¿Cuándo suena la alarma de la tienda?

Una tienda pequeña tiene una alarma. Suena si alguien abre la puerta o una ventana, pero solo cuando la alarma no está desconectada.

Una regla así se construye con piezas diminutas que reciben un sí o un no. El procesador de la centralita de la alarma tiene millones de ellas.

Al terminar esta lección

Nota

Puedo calcular la salida de un circuito lógico.

Palabras clave

PalabraQué significaEjemplo
Puerta lógicauna pieza diminuta que convierte bits de entrada en un bit de salida
Entradaun bit que entra en una puerta
Salidael bit que devuelve una puerta
Tabla de verdaduna tabla con cada entrada posible y su salida
Expresión booleanaun circuito escrito con palabras como AND, OR y NOTA OR B
Semisumadorun circuito que suma dos bits

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Las puertas básicas

Un 1 significa sí, o encendido. Un 0 significa no, o apagado.

Una puerta AND da 1 solo cuando las dos entradas son 1. Una puerta OR da 1 cuando al menos una entrada es 1. Una puerta NOT tiene una sola entrada y la invierte. NAND es AND seguida de NOT, y NOR es OR seguida de NOT.

Tabla de verdad de AND y OR

ABA AND BA OR B
0000
0101
1001
1111

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra superior y espera a que la máquina diga que está en marcha. Cada botón Ejecutar escribe su comando en el terminal de la máquina, uno detrás de otro.

Python y la terminal tienen puertas

En Python y en la terminal, & es AND, | es OR y ^ es XOR. XOR da 1 cuando las dos entradas son distintas.

Si les das dos números enteros, cada operador aplica su puerta a cada pareja de bits, posición a posición.

OR con cada pareja de bits

Comando
python3 -c "print(0 | 0, 0 | 1, 1 | 0, 1 | 1)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Tres puertas con 9 y 5

Comando
echo $(( 9 & 5 )) $(( 9 | 5 )) $(( 9 ^ 5 ))

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejemplo resuelto: puertas con 9 y 5

BitsDecimal
910019
501015
9 AND 500011
9 OR 5110113
9 XOR 5110012

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Leer un circuito como una expresión

Las puertas se pueden unir: la salida de una es la entrada de la siguiente. El circuito se escribe como una expresión booleana: Q = (A OR B) AND (NOT C).

Se calcula como una cuenta. Primero los paréntesis, después la puerta que los une. Con tres entradas, la tabla de verdad tiene ocho filas.

Ejemplo resuelto: su tabla de verdad

ABCA OR BNOT CQ
000010
001000
010111
011100
100111
101100
110111
111100

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Dos puertas suman dos bits

En binario, 1 + 1 es 10: se escribe 0 y te llevas 1. Un semisumador lo hace con dos puertas.

El bit de la suma es A XOR B. El bit de acarreo, lo que te llevas, es A AND B. Un procesador suma números enteros con cadenas de sumadores como este.

La suma y el acarreo de 1 + 1

Comando
python3 -c "print(1 ^ 1, 1 & 1)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que OR significa una cosa o la otra, pero no las dos. En lógica, OR también da 1 cuando las dos entradas son 1. La puerta de «una pero no las dos» es XOR.

Para ir más lejos: sumar tres bits

Un semisumador suma dos bits. Para sumar números largos, cada posición tiene que sumar además el acarreo de su derecha. Eso pide un sumador completo, hecho con dos semisumadores y una puerta OR.

Calcula a mano el bit de suma y el de acarreo de 1 + 1 + 1. Después, los de 0 + 1 + 1.

Sobre este laboratorio y su código: Laboratorio de compiladores y arquitectura: gcc, flex, bison y RISC-V en una VM

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.