Sistema binario, decimal y hexadecimal: cómo convertir entre ellos
Por qué los computadores usan binario, cómo funciona el sistema hexadecimal, y cómo convertir entre decimal, binario, octal y hexadecimal con ejemplos paso a paso.
Por qué los computadores usan el sistema binario
Un computador está construido con millones de transistores, pequeños interruptores electrónicos que solo pueden estar en dos estados: encendido (1) o apagado (0). Esta limitación física hace que el sistema binario —que solo usa dos dígitos— sea el lenguaje natural de cualquier máquina digital.
No es una elección arbitraria. Si los transistores tuvieran diez niveles de voltaje distinguibles, los computadores usarían decimal. Como solo tienen dos estados confiables, usamos binario. Todo lo que ves en pantalla —texto, imágenes, videos, código— es, en el fondo, una secuencia de unos y ceros.
El sistema decimal (base 10): el que usamos a diario
El sistema decimal usa diez dígitos (0 al 9) y se basa en potencias de 10. Cada posición representa una potencia de 10 mayor que la anterior, contando desde la derecha:
375 = 3×10² + 7×10¹ + 5×10⁰
= 3×100 + 7×10 + 5×1
= 300 + 70 + 5Esta notación posicional —donde el valor de un dígito depende de su posición— es la misma idea que usan todos los sistemas de numeración. Solo cambia la base.
El sistema binario (base 2): solo 0 y 1
El sistema binario usa únicamente los dígitos 0 y 1, y cada posición representa una potencia de 2:
1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰
= 8 + 4 + 0 + 1
= 13₁₀Un bit es un dígito binario (0 o 1). Un byte son 8 bits. Un byte puede representar 2⁸ = 256 valores distintos (de 0 a 255). Los archivos, la memoria RAM y el almacenamiento se miden en bytes, kilobytes, megabytes, etc.
El sistema hexadecimal (base 16): compacto y legible
El sistema hexadecimal usa 16 dígitos: 0-9 y luego A, B, C, D, E, F (donde A=10, B=11, C=12, D=13, E=14, F=15). Cada posición representa una potencia de 16.
¿Por qué se usa tanto en informática? Porque un dígito hexadecimal representa exactamente 4 bits (nibble). Esto hace que sea mucho más compacto escribir bytes como hex que como binario: el byte 11111111 en binario es simplemente FF en hex.
Ejemplos cotidianos del sistema hexadecimal: - Colores web: #FF0000 es rojo puro (R=255, G=0, B=0). El rojo se representa con FF porque FF₁₆ = 255₁₀. - Direcciones de memoria: Los depuradores y herramientas de bajo nivel muestran direcciones como 0x7FFD4A2C. - Códigos de error: Los errores de Windows BSOD son números hexadecimales (0x0000007E).
El sistema octal (base 8)
El sistema octal usa los dígitos 0-7. Aunque es menos común hoy, fue muy popular cuando los computadores usaban arquitecturas de 6 y 18 bits. Todavía aparece en los permisos de archivos Unix/Linux: chmod 755 usa octal, donde 7=111₂ (todos los permisos), 5=101₂ (lectura y ejecución).
Cómo convertir de decimal a binario: divisiones sucesivas por 2
El algoritmo es simple: divide el número entre 2 repetidamente y anota los restos. El número binario se lee de abajo hacia arriba.
Ejemplo: convertir 255 a binario
255 ÷ 2 = 127, resto 1
127 ÷ 2 = 63, resto 1
63 ÷ 2 = 31, resto 1
31 ÷ 2 = 15, resto 1
15 ÷ 2 = 7, resto 1
7 ÷ 2 = 3, resto 1
3 ÷ 2 = 1, resto 1
1 ÷ 2 = 0, resto 1Leyendo los restos de abajo hacia arriba: 255₁₀ = 11111111₂
Esto tiene sentido: 11111111 en binario es el byte con todos los bits en 1, y es el valor máximo de un byte. Por eso el rojo puro en HTML es #FF (255).
Cómo convertir de binario a decimal: potencias de 2
Multiplica cada dígito por la potencia de 2 correspondiente a su posición (contando desde 0 por la derecha) y suma los resultados.
Ejemplo: convertir 11111111₂ a decimal
Posición: 7 6 5 4 3 2 1 0
Dígito: 1 1 1 1 1 1 1 1
Valor: 128 64 32 16 8 4 2 1
Suma: 128+64+32+16+8+4+2+1 = 255₁₀Usa nuestra calculadora de conversor de bases para convertir entre decimal, binario, octal y hexadecimal instantáneamente con cualquier número.
Tabla de equivalencias rápidas (0 al 16)
| Decimal | Binario | Octal | Hex |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
Dónde aparece cada sistema en programación
Binario: Se usa internamente en operaciones de bajo nivel (bit shifting, AND, OR, XOR para máscaras de bits). Los programadores que trabajan con protocolos de red, criptografía o sistemas embebidos lo necesitan con frecuencia.
Decimal: El sistema predeterminado para entrada y salida de usuario. Casi toda la lógica de negocio opera en decimal porque es lo que los humanos entienden naturalmente.
Hexadecimal: Aparece constantemente en: colores CSS (#RRGGBB), hashes criptográficos (SHA-256 produce 64 dígitos hex), direcciones MAC de red (00:1A:2B:3C:4D:5E), depuración de memoria, y representación de caracteres Unicode (U+1F600 es el emoji 😀).
Octal: Principalmente en permisos de archivos Unix (chmod), algunos protocolos heredados, y representación de caracteres de escape en lenguajes como C (\0 es el carácter nulo, \101 es 'A').
Preguntas frecuentes
¿Cuántos valores puede representar un byte?
Un byte tiene 8 bits y cada bit puede ser 0 o 1, así que hay 2⁸ = 256 combinaciones posibles (de 0 a 255 en decimal, de 0x00 a 0xFF en hexadecimal). Un entero de 4 bytes (32 bits) puede representar 2³² = 4,294,967,296 valores distintos, que es el rango de un entero sin signo de 32 bits.
¿Por qué en hexadecimal se usan letras en lugar de dígitos nuevos?
Porque necesitamos 16 símbolos distintos para cada posición y el sistema árabe solo tiene 10 dígitos (0-9). En lugar de inventar 6 símbolos nuevos, se adoptó la convención de usar las letras A-F. En algunos contextos se usan minúsculas (a-f); en otros, mayúsculas (A-F). Ambas formas son equivalentes.
¿Cómo convierto de binario a hexadecimal directamente?
Agrupa los bits de derecha a izquierda en grupos de 4. Cada grupo de 4 bits equivale a un dígito hexadecimal. Ejemplo: 11101010₂ → grupos: 1110 y 1010 → 1110₂ = 14 = E, 1010₂ = 10 = A → EA₁₆. Esta conversión directa es la razón por la que hexadecimal es tan útil para representar datos binarios de forma compacta.
¿Los computadores realmente "piensan" en binario?
Sí y no. El hardware opera en binario a nivel eléctrico (voltajes altos y bajos). Pero los programadores generalmente trabajan con lenguajes de alto nivel (Python, JavaScript, Java) que abstraen completamente ese nivel. Solo cuando se trabaja muy cerca del hardware —en lenguaje ensamblador, controladores de dispositivos o criptografía— el programador necesita razonar directamente en binario o hexadecimal.