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⁰
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:

  1. 0 × 2 + 1 = 1
  2. 1 × 2 + 0 = 2
  3. 2 × 2 + 1 = 5
  4. 5 × 2 + 1 = 11
  5. 11 × 2 + 0 = 22
  6. 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:

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:

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):

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

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.

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.