Listen to this article
Browser text-to-speech
Introducción a los sistemas numéricos
Cada número que encuentras a diario usa el sistema decimal: base 10. Aprendiste a contar con diez dedos, por lo que la base 10 se siente natural. Pero las computadoras no tienen dedos. Tienen transistores que están encendidos o apagados, lo que significa que naturalmente funcionan en base 2: binario.
Comprender binario, hexadecimal (base 16) y octal (base 8) es esencial para los programadores. Estos sistemas numéricos aparecen en todas partes en la informática, desde las direcciones de memoria hasta los códigos de color, los permisos de archivo y las operaciones bit a bit.
Por qué las computadoras usan binario (base 2)
La realidad del hardware
En el nivel más bajo, las computadoras se construyen a partir de miles de millones de transistores. Cada transistor puede existir en uno de dos estados: encendido (conduciendo electricidad) o apagado (sin conducir). Este estado binario se asigna perfectamente a los dígitos 0 y 1.
¿Por qué no usar 10 niveles de voltaje diferentes para la base 10?
Teóricamente posible, pero prácticamente problemático:
- Distinguir entre 10 niveles de voltaje requiere mediciones precisas
- El ruido eléctrico podría causar errores (¿es ese voltaje 4 o 5?)
- El binario es más fiable: cualquier voltaje por encima de un umbral es 1, por debajo es 0
Representación binaria
En binario, cada posición de dígito representa una potencia de 2:
| Posición | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Valor | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Por ejemplo, el número binario 10110101 es igual a:
- 1×128 + 0×64 + 1×32 + 1×16 + 0×8 + 1×4 + 0×2 + 1×1
- = 128 + 32 + 16 + 4 + 1
- = 181 en decimal
Bits y Bytes
Un solo dígito binario se llama bit. Ocho bits forman un byte, que puede representar valores de 0 a 255 (2^8 - 1). Las agrupaciones comunes incluyen:
- Nibble: 4 bits (0-15)
- Byte: 8 bits (0-255)
- Word: 16, 32 o 64 bits según la arquitectura del procesador
Hexadecimal (base 16): el favorito del programador
¿Por qué hexadecimal?
El binario es perfecto para las computadoras pero terrible para los humanos. Leer 11111111101011001010111011110000 es agotador y propenso a errores. Hexadecimal resuelve esto proporcionando una representación compacta.
Dado que 16 = 2^4, cada dígito hexadecimal representa exactamente 4 dígitos binarios (un nibble). Esto crea una asignación perfecta:
| Decimal | Binario | Hex |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
Notación hexadecimal
Los números hexadecimales se suelen prefijar para distinguirlos de los decimales:
- Prefijo 0x:
0xFF(C, JavaScript, Python) - Prefijo #:
#FF5733(colores CSS) - Sufijo h:
FFh(lenguaje ensamblador)
Casos de uso comunes de hexadecimal
1. Direcciones de memoria
Las direcciones de memoria casi siempre se muestran en hexadecimal:
0x00007FFD4A2B3C40
Esta dirección de 64 bits es mucho más legible que su equivalente binario (64 unos y ceros).
2. Códigos de color
Los colores web usan valores RGB hexadecimales:
#FF0000= Rojo (255 rojo, 0 verde, 0 azul)#00FF00= Verde#0000FF= Azul#FFFFFF= Blanco (todos los canales al máximo)#000000= Negro (todos los canales a cero)
Cada par de dígitos hexadecimales representa un canal de color (0-255).
3. Valores de byte
Un solo byte varía de 00 a FF en hexadecimal (0-255 decimal). Dos caracteres hexadecimales son más fáciles de leer que hasta tres dígitos decimales.
Octal (base 8): el sistema histórico
Orígenes del octal
El octal fue popular en la informática temprana por la misma razón que el hexadecimal: se asigna limpiamente a binario (8 = 2^3, por lo que cada dígito octal representa 3 bits). Las primeras computadoras como el PDP-8 usaban palabras de 12 bits, que se dividen uniformemente entre 3 pero no entre 4, lo que hace que el octal sea la opción natural.
Octal en la informática moderna
Aunque en su mayoría ha sido sustituido por el hexadecimal, el octal sobrevive en un área importante: permisos de archivo de Unix.
bash chmod 755 script.sh
Cada dígito representa permisos para el propietario, el grupo y otros:
- 7 = 111 binario = leer + escribir + ejecutar
- 5 = 101 binario = leer + ejecutar
- 0 = 000 binario = sin permisos
Los bits de permiso:
| Octal | Binario | Significado |
|---|---|---|
| 0 | 000 | Sin permiso |
| 1 | 001 | Solo ejecutar |
| 2 | 010 | Solo escribir |
| 3 | 011 | Escribir + Ejecutar |
| 4 | 100 | Solo lectura |
| 5 | 101 | Leer + Ejecutar |
| 6 | 110 | Leer + Escribir |
| 7 | 111 | Permiso completo |
Notación octal
Los números octales suelen usar:
- Prefijo 0:
0755(C, JavaScript) - Prefijo 0o:
0o755(Python 3)
Conversión entre sistemas numéricos
Decimal a binario
Método: División repetida por 2
Para convertir 181 a binario:
- 181 ÷ 2 = 90 resto 1
- 90 ÷ 2 = 45 resto 0
- 45 ÷ 2 = 22 resto 1
- 22 ÷ 2 = 11 resto 0
- 11 ÷ 2 = 5 resto 1
- 5 ÷ 2 = 2 resto 1
- 2 ÷ 2 = 1 resto 0
- 1 ÷ 2 = 0 resto 1
Leyendo los restos de abajo hacia arriba: 10110101
Binario a hexadecimal
Método: Agrupar en Nibbles
Convertir 10110101 a hexadecimal:
- Agrupar en secciones de 4 bits desde la derecha:
1011 0101 - Convertir cada grupo:
1011= B,0101= 5 - Resultado: B5
Hexadecimal a decimal
Método: Notación posicional
Convertir B5 a decimal:
- B = 11, posición 1: 11 × 16^1 = 176
- 5 = 5, posición 0: 5 × 16^0 = 5
- Total: 176 + 5 = 181
Tabla de conversiones de referencia rápida
| Decimal | Binario | Octal | Hex |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 100 | 1100100 | 144 | 64 |
| 127 | 1111111 | 177 | 7F |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
Conceptos básicos de la aritmética binaria
Suma binaria
La suma binaria sigue reglas simples:
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 10 (0, carry 1)
Ejemplo: 1011 + 0110
1011 (11 en decimal)
- 0110 (6 en decimal)
10001 (17 en decimal)
Resta binaria
Usando el complemento a dos (cómo las computadoras realmente restan):
- Invertir todos los bits del sustraendo
- Añadir 1
- Añadir al minuendo
Ejemplo: 1011 - 0110 (11 - 6)
- Invertir 0110 → 1001
- Añadir 1 → 1010
- Añadir: 1011 + 1010 = 10101
- Descartar el desbordamiento: 0101 = 5
Operaciones bit a bit
Los programadores utilizan con frecuencia operaciones bit a bit:
AND (&): Ambos bits deben ser 1
1010 & 1100 = 1000
OR (|): Cualquiera de los bits puede ser 1
1010 | 1100 = 1110
XOR (^): Exactamente un bit debe ser 1
1010 ^ 1100 = 0110
NOT (~): Invierte todos los bits
~1010 = 0101
Desplazamiento a la izquierda (<<): Multiplicar por 2
1010 << 1 = 10100
Desplazamiento a la derecha (>>): Dividir por 2
1010 >> 1 = 0101
Aplicaciones prácticas
Depuración de memoria
Al depurar, los volcados de memoria muestran hexadecimal:
0x0000: 48 65 6C 6C 6F 20 57 6F Hello Wo 0x0008: 72 6C 64 21 00 00 00 00 rld!....
Cada byte se muestra en hexadecimal, con la interpretación ASCII a la derecha.
Protocolos de red
Las direcciones MAC usan hexadecimal: 00:1A:2B:3C:4D:5E
Las direcciones IPv6 usan hexadecimal: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Criptografía
Los valores hash se muestran en hexadecimal:
SHA-256: e3b0c44298fc1c149afbf4c8996fb924...
Ensamblaje y programación de bajo nivel
Los códigos de operación de las instrucciones, los valores de los registros y las direcciones de memoria usan hexadecimal para facilitar la lectura.
Conclusiones clave
- El binario es el lenguaje nativo de las computadoras porque los transistores tienen dos estados
- El hexadecimal proporciona binario legible por humanos con una asignación perfecta de bits 4:1
- El octal sobrevive principalmente en los permisos de Unix debido a la agrupación de 3 bits
- La conversión entre bases se vuelve intuitiva con la práctica
- Las operaciones bit a bit son herramientas poderosas para una programación eficiente
See what our calculators can do for you
Ready to take control of your finances?
Utilice nuestros convertidores gratuitos para cambiar entre binario, hexadecimal, decimal y octal
Explore Our ToolsFrequently Asked Questions
Common questions about the Binario, Hexadecimal y Octal: Sistemas numéricos que todo programador debe conocer
