Cómo convertir binario a decimal (y hex): paso a paso
Para convertir binario a decimal, multiplica cada bit por su valor posicional y suma los resultados. Los valores posicionales son potencias de 2 que se duplican de derecha a izquierda: 1, 2, 4, 8, 16, etc. Por ejemplo, 1011 en binario es 1×8 + 0×4 + 1×2 + 1×1 = 8 + 0 + 2 + 1 = 11.
Pruébalo gratis: Convertidor de base entera Gratis y sin necesidad de cuenta.
Esta guía explica cómo convertir binario a decimal con dos métodos, cómo hacer el camino inverso, de decimal a binario, qué es el sistema hexadecimal y por qué lo usan los programadores, y cómo pasar entre binario, hexadecimal y octal sin calculadora. Todos los ejemplos se comprobaron con código. Para comprobar tus propios números mientras lees, pégalos en el conversor binario gratuito.
Cómo leer binario: valores posicionales
El código binario es información escrita con solo dos símbolos, 0 y 1. Las computadoras lo usan porque sus circuitos trabajan con dos estados, como voltaje bajo y alto. Cada dígito binario se llama bit, y un grupo de 8 bits es un byte.
El binario es un sistema posicional, igual que el decimal. En decimal, cada posición vale 10 veces la que está a su derecha (unidades, decenas, centenas). En binario, cada posición vale 2 veces la que está a su derecha:
| Posición (desde la derecha) | 8.ª | 7.ª | 6.ª | 5.ª | 4.ª | 3.ª | 2.ª | 1.ª |
|---|---|---|---|---|---|---|---|---|
| Potencia de 2 | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
| Valor posicional | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Un 1 significa «incluye este valor posicional» y un 0 significa «omítelo».
Cómo convertir binario a decimal paso a paso
Método 1: sumar los valores posicionales
Toma el número binario 11010110. Escribe los valores posicionales debajo de los bits, conserva aquellos cuyo bit es 1 y súmalos:
| Bit | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Valor posicional | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Bit × valor | 128 | 64 | 0 | 16 | 0 | 4 | 2 | 0 |
128 + 64 + 16 + 4 + 2 = 214. Así que 11010110₂ = 214₁₀. El pequeño subíndice indica la base cuando no es evidente.
Método 2: duplicar y sumar
Este método no necesita tabla. Empieza con 0 y lee los bits de izquierda a derecha: duplica el total acumulado y suma el bit actual.
Para 101101:
- 0 × 2 + 1 = 1
- 1 × 2 + 0 = 2
- 2 × 2 + 1 = 5
- 5 × 2 + 1 = 11
- 11 × 2 + 0 = 22
- 22 × 2 + 1 = 45
Así que 101101₂ = 45. Compruébalo con el método 1: 32 + 8 + 4 + 1 = 45.
Cómo convertir decimal a binario
División sucesiva entre 2
Divide el número entre 2, anota el resto (0 o 1) y repite con el cociente hasta llegar a 0. Después lee los restos de abajo arriba. Este es el caso de 156:
| División | Cociente | Resto |
|---|---|---|
| 156 ÷ 2 | 78 | 0 |
| 78 ÷ 2 | 39 | 0 |
| 39 ÷ 2 | 19 | 1 |
| 19 ÷ 2 | 9 | 1 |
| 9 ÷ 2 | 4 | 1 |
| 4 ÷ 2 | 2 | 0 |
| 2 ÷ 2 | 1 | 0 |
| 1 ÷ 2 | 0 | 1 |
Leyendo hacia arriba se obtiene 156 = 10011100₂. Comprobación: 128 + 16 + 8 + 4 = 156. El error más común es leer los restos de arriba abajo, lo que da los bits en orden inverso.
Restar potencias de 2
Con números pequeños suele ser más rápido tomar la mayor potencia de 2 que cabe, restarla y repetir. Para 100: cabe 64 (100 − 64 = 36), luego 32 (36 − 32 = 4) y luego 4 (4 − 4 = 0). Pon un 1 debajo de 64, 32 y 4 y un 0 en todas las demás posiciones: 100 = 1100100₂.
¿Qué es el sistema hexadecimal?
El hexadecimal (hex) es la base 16. Necesita 16 dígitos, así que después de 0–9 usa las letras A–F para los valores del 10 al 15: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Cada posición vale 16 veces la que está a su derecha: 1, 16, 256, 4.096, etc.
Los programadores usan el hexadecimal porque encaja exactamente con el binario. Cuatro bits tienen 16 combinaciones posibles (0000 a 1111), así que un dígito hexadecimal equivale exactamente a 4 bits y dos dígitos hexadecimales equivalen exactamente a un byte. El byte más grande, 11111111, es simplemente FF en hexadecimal, mientras que en decimal es 255, un número que no deja ver el patrón de bits. Por eso las direcciones de memoria, los códigos de color, las direcciones MAC y las direcciones IPv6 se escriben en hexadecimal.
Cómo convertir hexadecimal a decimal
Usa el mismo método de los valores posicionales con potencias de 16 y sustituye las letras por sus valores:
- 2F = 2 × 16 + 15 × 1 = 32 + 15 = 47
- 1A3 = 1 × 256 + 10 × 16 + 3 × 1 = 256 + 160 + 3 = 419
Cómo convertir decimal a hexadecimal
Pasar de decimal a hexadecimal funciona igual que pasar de decimal a binario, pero se divide entre 16. Los restos del 10 al 15 se convierten en las letras de la A a la F. Este es el caso de 1000:
| División | Cociente | Resto |
|---|---|---|
| 1000 ÷ 16 | 62 | 8 |
| 62 ÷ 16 | 3 | 14 = E |
| 3 ÷ 16 | 0 | 3 |
Leyendo los restos de abajo arriba se obtiene 1000 = 3E8₁₆. Comprobación: 3 × 256 + 14 × 16 + 8 = 768 + 224 + 8 = 1000.
De binario a hexadecimal: agrupa los bits de cuatro en cuatro
Como un dígito hexadecimal son cuatro bits, convertir binario a hexadecimal no requiere ninguna operación. Divide el número binario en grupos de cuatro bits (llamados nibbles), empezando por la derecha, y sustituye cada grupo según esta tabla:
| Binario | Hexadecimal | Decimal | Binario | Hexadecimal | Decimal |
|---|---|---|---|---|---|
| 0000 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | A | 10 |
| 0011 | 3 | 3 | 1011 | B | 11 |
| 0100 | 4 | 4 | 1100 | C | 12 |
| 0101 | 5 | 5 | 1101 | D | 13 |
| 0110 | 6 | 6 | 1110 | E | 14 |
| 0111 | 7 | 7 | 1111 | F | 15 |
Ejemplos:
- 11010110 → 1101 0110 → D6 (y D6 = 13 × 16 + 6 = 214, el mismo número de antes)
- 101101 → se completa con ceros a la izquierda hasta 0010 1101 → 2D (= 45)
De hexadecimal a binario se hace al revés: sustituye cada dígito hexadecimal por sus cuatro bits. 3E8 → 0011 1110 1000 → 1111101000 al quitar los ceros a la izquierda.
El octal en pocas palabras
El octal es la base 8 y usa los dígitos 0–7. Funciona como el hexadecimal, pero con grupos de tres bits, porque 2³ = 8. Su uso más conocido hoy son los permisos de archivos en Unix. En chmod 755, cada dígito son tres bits de permiso (lectura, escritura, ejecución):
- 7 = 111 = rwx
- 5 = 101 = r-x
- 5 = 101 = r-x
Así, 755 en octal es el patrón de bits 111 101 101, que es 493 en decimal. La Calculadora de Chmod convierte las casillas de permisos marcadas en el número octal, o muestra qué permisos establece un número como 755.
Dónde aparecen estas conversiones
- Direcciones IPv4. Cada uno de los cuatro números es un byte. 192.168.1.10 es 11000000.10101000.00000001.00001010 en binario; 192 = 128 + 64.
- Colores web. Un color hexadecimal como #FF8800 son tres bytes: rojo FF = 255, verde 88 = 8 × 16 + 8 = 136, azul 00 = 0, así que equivale a rgb(255, 136, 0). El Convertidor de color hace esto con cualquier color.
- Texto. En ASCII y Unicode, la letra A mayúscula tiene el código 65, que es 0x41 en hexadecimal y 01000001 en binario. La a minúscula es 97 (0x61, 01100001); ambas difieren en 32, un solo bit.
Prefijos: 0b, 0x y 0o
En el código, un prefijo le indica al compilador qué base usa un literal numérico:
| Prefijo | Base | Ejemplo | Valor decimal |
|---|---|---|---|
0b |
Binario (2) | 0b1011 |
11 |
0o |
Octal (8) | 0o755 |
493 |
0x |
Hexadecimal (16) | 0x3E8 |
1000 |
0x funciona en casi todos los lenguajes. 0b es compatible con Python, JavaScript, Java, C# y C++. 0o lo usan Python y JavaScript, mientras que C y C++ escriben el octal con un simple cero inicial, así que 0755 en C es 493, no 755.
La mayoría de los lenguajes también pueden convertir cadenas por ti:
# Python
int("1011", 2) # 11
bin(156) # '0b10011100'
hex(1000) # '0x3e8'
int("3E8", 16) # 1000
// JavaScript
parseInt("1011", 2) // 11
(1000).toString(16) // "3e8"
Number("0b1011") // 11
Una trampa: en JavaScript, parseInt("0b1011") devuelve 0, porque parseInt se detiene en el primer carácter que no puede leer y no entiende el prefijo 0b. Quita el prefijo y pasa la base como argumento, como explica la referencia de MDN sobre parseInt.
Una nota sobre los números negativos
Las computadoras suelen almacenar los enteros negativos en complemento a dos. Para escribir −5 en 8 bits, parte de 5 = 00000101, invierte todos los bits para obtener 11111010 y luego suma 1: 11111011. Leído como número sin signo, el mismo patrón es 251 (256 − 5), o FB en hexadecimal. Por eso el mismo byte puede significar −5 o 251 según el programa lo trate como número con signo o sin signo.
Tabla de conversión entre binario, decimal, octal y hexadecimal
| Decimal | Binario | Octal | Hexadecimal |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 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 |
| 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 |
Convierte cualquier base con el conversor binario
El conversor binario gratuito funciona en tu navegador. Escribe un número e indica su base, y te muestra el valor en binario, octal, decimal y hexadecimal a la vez, además de una base de salida personalizada.
- Cualquier base de 2 a 64, tanto para la entrada como para la salida personalizada.
- Prefijos y mayúsculas: acepta
0b,0oy0xcuando coinciden con la base de entrada, y letras mayúsculas comoFFhasta la base 36. Por encima de la base 36, las minúsculas y las mayúsculas son dígitos distintos. - Errores claros: un dígito no válido, como un 2 en binario, muestra qué dígitos admite la base, y un prefijo
0xcon base 10 te indica que cambies la base a 16. - Longitud en bits: muestra cuántos bits necesita el número; por ejemplo, 6 para 42 (101010).
- Números grandes: convierte enteros muy largos con exactitud, como una dirección IPv6 completa de 128 bits escrita como un solo número.
Algunos límites que conviene conocer: solo convierte números enteros no negativos, así que rechaza el signo menos y el separador decimal; la salida hexadecimal aparece en minúsculas y sin ceros a la izquierda; y la fila «Base64 (64)» es un número en base 64 que usa los dígitos 0–9, a–z, A–Z, + y /, no la codificación de texto Base64.
Preguntas frecuentes
¿Cuál es el número más grande que cabe en 8 bits?
255, que se escribe 11111111 en binario o FF en hexadecimal. Ocho bits dan 2⁸ = 256 combinaciones distintas, que cubren del 0 al 255. Con dieciséis bits se llega a 65.535, y cada bit adicional duplica el rango.
¿Por qué los programadores usan hexadecimal en lugar de decimal?
Porque cada dígito hexadecimal corresponde exactamente a cuatro bits, así que puedes leer el patrón de bits directamente en los dígitos hexadecimales. Un byte siempre son dos dígitos hexadecimales (00 a FF). El decimal no encaja así: 255 y 256 se parecen mucho en decimal, pero en binario son 11111111 y 100000000.
¿Cómo se convierte una fracción binaria a decimal?
Los bits que van después del punto binario valen 1/2, 1/4, 1/8, etc. Así, 101.11₂ = 4 + 1 + 0,5 + 0,25 = 5,75. Muchas fracciones decimales, como 0,1, no tienen una representación binaria exacta; por eso 0.1 + 0.2 no da exactamente 0.3 en la mayoría de los lenguajes de programación. El conversor binario solo trabaja con números enteros.
¿El código binario es lo mismo que ASCII?
No. El binario es el sistema de numeración; ASCII es una tabla que asigna un número a cada carácter. La letra A tiene el código ASCII 65, y ese número se almacena como los bits 01000001.
Pruébalo gratis: Convertidor de base entera Gratis y sin necesidad de cuenta.