Tema 2: Código Binario y Lógica Digital

El ADN del universo digital: de los interruptores a los microprocesadores.

Diapositivas del Tema

Consulta la presentación visual de este tema para una mejor comprensión de los conceptos.

Ver Presentación

El Lenguaje Secreto de las Máquinas

Absolutamente todo en el mundo digital se traduce a un idioma de solo dos "letras": 0 y 1. Dominar este lenguaje es entender la esencia de la computación.

1. El Sistema Binario: Más Allá del Diez

Desde niños aprendemos a contar usando diez dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Este es el sistema decimal (base 10). Pero una computadora no tiene diez dedos; tiene interruptores. Y un interruptor solo tiene dos estados: apagado (0) o encendido (1). Este es el corazón del sistema binario (base 2). Cada dígito binario se llama bit (contracción de Binary Digit), y es la unidad de información más pequeña que existe. [1]

Analogía de bits como interruptores de luz
Un bit es como un interruptor: solo puede estar en estado de 0 (apagado) o 1 (encendido).

Conversión entre Decimal y Binario

Para entender cómo "piensa" una máquina, debemos saber traducir entre nuestro lenguaje numérico y el suyo.

De Decimal a Binario: El Método de las Divisiones

Para convertir un número decimal a binario, lo dividimos sucesivamente por 2 y anotamos los residuos (restos) de abajo hacia arriba.

Ejemplo: Convertir el número 25 a binario.

  • 25 / 2 = 12 (residuo 1)
  • 12 / 2 = 6 (residuo 0)
  • 6 / 2 = 3 (residuo 0)
  • 3 / 2 = 1 (residuo 1)
  • 1 / 2 = 0 (residuo 1)

Leemos los residuos de abajo hacia arriba: 11001. Por lo tanto, 25 en decimal es 11001 en binario.

De Binario a Decimal: El Método de las Potencias

Cada posición en un número binario representa una potencia de 2, empezando desde la derecha con 20.

Ejemplo: Convertir el número binario 11001 a decimal.

11001 = (1 * 24) + (1 * 23) + (0 * 22) + (0 * 21) + (1 * 20)

= (1 * 16) + (1 * 8) + (0 * 4) + (0 * 2) + (1 * 1)

= 16 + 8 + 0 + 0 + 1 = 25


2. Bytes, Recursos y el Famoso 255

Un Byte es un conjunto estandarizado de 8 bits. Es la unidad de medida más común para el almacenamiento de datos. Pero, ¿cuántos valores podemos representar con un byte?

La fórmula es 2n, donde n es el número de bits. Con 8 bits, tenemos 28 = 256 combinaciones posibles.

Curiosidad: ¿Por qué el máximo es 255 y no 256?

Si tenemos 256 combinaciones, ¿por qué el valor máximo que vemos en muchos sitios (como en los colores RGB) es 255? La respuesta es simple: porque el conteo empieza en 0. El primer valor es 0 (binario: 00000000) y el último es 255 (binario: 11111111). Esto nos da un total de 256 valores distintos.

La Importancia en la Programación

En lenguajes de programación de bajo nivel como C o C++, el programador debe ser consciente del tamaño de los datos. Elegir el tipo de dato correcto puede ahorrar mucha memoria. Por ejemplo, si sabes que una variable nunca superará el valor de 200, puedes almacenarla en un tipo de dato de 1 byte (como unsigned char) en lugar de un tipo de 4 bytes (como int). En aplicaciones a gran escala, como en sistemas embebidos o videojuegos, esta gestión de memoria es crucial para el rendimiento.

El Sistema Hexadecimal: El Mejor Amigo del Binario

Mirar una cadena larga de ceros y unos como 1101101011110010 es agotador y propenso a errores. Aquí es donde entra el sistema hexadecimal (base 16). Usa 16 dígitos: 0-9 y luego A, B, C, D, E, F.

La magia del hexadecimal es que cada dígito hexadecimal corresponde exactamente a un grupo de 4 bits (un nibble). Esto lo convierte en una forma compacta y legible de representar números binarios.

Decimal Binario Hexadecimal
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

Por ejemplo, el color rojo en formato RGB se escribe #FF0000. Esto representa tres bytes: FF (255 para rojo), 00 (0 para verde) y 00 (0 para azul). Es mucho más fácil de leer y escribir que su equivalente binario: 111111110000000000000000.


3. Lógica Digital: El Cerebro de la Operación

La lógica digital es el conjunto de reglas que permite a los circuitos tomar decisiones. Se basa en el Álgebra de Boole, desarrollada por George Boole en el siglo XIX. En este sistema, las variables solo pueden tener dos valores: verdadero (1) o falso (0). [2]

Los componentes físicos que implementan estas reglas se llaman puertas lógicas. Originalmente se construían con relés electromagnéticos o tubos de vacío, pero hoy en día se fabrican con miles de millones de transistores en un solo chip de silicio.

Las Puertas Lógicas Fundamentales

Puerta AND

La salida es 1 solo si todas sus entradas son 1.

A B Salida
0 0 0
0 1 0
1 0 0
1 1 1
Puerta OR

La salida es 1 si al menos una de sus entradas es 1.

A B Salida
0 0 0
0 1 1
1 0 1
1 1 1
Puerta NOT

Invierte la entrada. Es un inversor.

A Salida
0 1
1 0

Puertas Derivadas (Universales)

Las puertas NAND (NOT-AND) y NOR (NOT-OR) son especiales porque con cualquiera de ellas se puede construir cualquier otra puerta lógica. Por eso se les llama puertas universales.

Puerta NAND

Es una puerta AND seguida de un NOT.

A B Salida
0 0 1
0 1 1
1 0 1
1 1 0
Puerta NOR

Es una puerta OR seguida de un NOT.

A B Salida
0 0 1
0 1 0
1 0 0
1 1 0
Puerta XOR

La "O Exclusiva". La salida es 1 solo si las entradas son diferentes.

A B Salida
0 0 0
0 1 1
1 0 1
1 1 0

De la Lógica al Silicio

Estas puertas lógicas no son solo conceptos abstractos. Son componentes electrónicos reales que se venden encapsulados en circuitos integrados (chips). Por ejemplo, el famoso chip "7408" contiene cuatro puertas AND, y el "7432" contiene cuatro puertas OR. Los aficionados a la electrónica los usan para construir circuitos complejos.

Chips de circuitos integrados con puertas lógicas
Chips de la serie 7400, cada uno contiene múltiples puertas lógicas.

4. Álgebra de Boole y Simplificación de Circuitos

El Álgebra de Boole nos da un conjunto de leyes para manipular expresiones lógicas, de forma muy parecida al álgebra tradicional. El objetivo es simplificar una función lógica para poder construir el circuito con el menor número de puertas posible, ahorrando costes, espacio y energía. [3]

Ejemplo de Simplificación:

Imagina que tenemos la siguiente función lógica: F = A'BC + ABC + AB'C

Podemos usar las leyes del Álgebra de Boole para simplificarla:

  1. Factor Común: Sacamos BC de los dos primeros términos: F = BC(A' + A) + AB'C
  2. Ley de Inversión: Sabemos que A' + A (algo o su contrario) es siempre 1. Así que: F = BC(1) + AB'C = BC + AB'C
  3. Factor Común de nuevo: Sacamos C: F = C(B + AB')
  4. Ley de Adyacencia: Una ley booleana dice que X + X'Y = X + Y. Aquí, B + AB' = B + A.
  5. Resultado Final: F = C(A + B)

Hemos pasado de un circuito que necesitaba tres puertas AND de 3 entradas y una puerta OR de 3 entradas, a uno que solo necesita una puerta OR y una puerta AND. ¡Mucho más eficiente!

Diagrama de simplificación de un circuito lógico
A la izquierda, el circuito complejo. A la derecha, el circuito simplificado que hace lo mismo.

Más Allá de las Puertas: Circuitos Complejos

Combinando puertas lógicas, se construyen bloques más complejos que son fundamentales en la computación:

  • Multiplexores (MUX): Son como un selector de canales. Tienen varias entradas de datos, varias entradas de control y una sola salida. Las entradas de control deciden cuál de las entradas de datos pasa a la salida.
  • Decodificadores: Hacen lo contrario a un codificador. Toman una entrada binaria y activan una de sus múltiples salidas.
  • Latches y Flip-Flops: ¡Son los bloques de construcción de la memoria! Son circuitos biestables, lo que significa que pueden "recordar" un bit (0 o 1) y mantener ese estado hasta que se les ordene cambiar. Son la base de la memoria RAM.

5. Aplicaciones en el Mundo Real: La Lógica Digital en Acción

Puede parecer un tema muy teórico, pero la lógica digital es una de las tecnologías más prácticas y omnipresentes que existen. Está funcionando ahora mismo para que puedas leer esto. Aquí algunos ejemplos clave:

Comunicaciones y Transmisión de Datos

Cuando envías un mensaje o una foto, la información se descompone en paquetes de bits. ¿Cómo sabe el receptor que los datos llegaron correctamente y no se corrompieron por el camino (por interferencias, por ejemplo)? Se usan bits de paridad. Es una aplicación simple de la lógica XOR. Antes de enviar un byte, el sistema cuenta cuántos "1" hay. Si se acuerda usar "paridad par", se añade un bit extra para que el número total de "1" sea par. El receptor hace la misma cuenta. Si recibe un número impar de "1", sabe que ha habido un error en la transmisión y pide que se reenvíe el paquete. Este es un pilar fundamental de las redes fiables.

Sistemas de Control Industrial (PLCs)

En una fábrica, las máquinas toman decisiones constantemente. Imagina una línea de embotellado: un sensor detecta si hay una botella (Entrada A), otro sensor detecta si la botella está llena (Entrada B). La lógica del sistema (un PLC o Controlador Lógico Programable) podría ser: SI (A Y NO B) ENTONCES activar_llenado. Esto es una puerta AND con una de sus entradas invertida (NOT). Toda la automatización industrial, desde semáforos hasta robots ensambladores, se basa en estas decisiones lógicas.

Diagrama de un sistema de control industrial
La lógica digital controla procesos complejos en la automatización industrial.

Memorias y Almacenamiento

Como mencionamos, los Flip-Flops son la base de la memoria. La memoria RAM de tu computadora es una gigantesca matriz de miles de millones de estos circuitos. Cada uno puede almacenar un bit (0 o 1). Cuando guardas un archivo o abres un programa, la CPU envía señales eléctricas que "activan" o "desactivan" estos flip-flops para escribir los datos en la memoria, donde permanecen listos para ser leídos en cualquier momento.

Calculadoras y Microprocesadores (ALU)

El corazón de cualquier procesador (CPU) es la Unidad Aritmético-Lógica (ALU). Esta unidad es, en esencia, un circuito digital enormemente complejo construido a partir de puertas lógicas. Es la responsable de realizar todas las operaciones matemáticas (suma, resta, multiplicación) y lógicas (AND, OR, NOT) que ejecuta un programa. Cuando tu calculadora suma 2+2, en realidad está procesando 10 + 10 en binario a través de una serie de puertas lógicas llamadas "sumadores completos" (full adders).


Galería de Videos Recomendados

Estos conceptos pueden ser abstractos. Verlos en acción ayuda a solidificar el conocimiento.

¿Cómo funcionan las computadoras?

Un video introductorio que explica de manera brillante cómo los simples ceros y unos se convierten en todo lo que hacemos con la tecnología.

Puertas Lógicas Explicadas

Una explicación visual y animada de las puertas lógicas AND, OR, NOT y cómo se combinan.

Construyendo un Sumador Binario

Un video fascinante que muestra cómo se pueden combinar puertas lógicas para hacer algo práctico: sumar dos números.


6. Referencias y Lecturas Recomendadas

Este es un campo vasto y fascinante. Si quieres profundizar, te recomiendo encarecidamente estas obras:

  • [1] Petzold, C. (2000). Code: The Hidden Language of Computer Hardware and Software. Microsoft Press.
  • [2] Mano, M. M., & Ciletti, M. D. (2012). Digital Design: With an Introduction to the Verilog HDL. Pearson.
  • [3] Wakerly, J. F. (2005). Digital Design: Principles and Practices. Pearson.