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 22⁷2⁶2⁵2⁴2³2²2¹2⁰
Valor posicional1286432168421

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:

Bit11010110
Valor posicional1286432168421
Bit × valor128640160420

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ónCocienteResto
156 ÷ 2780
78 ÷ 2390
39 ÷ 2191
19 ÷ 291
9 ÷ 241
4 ÷ 220
2 ÷ 210
1 ÷ 201

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ónCocienteResto
1000 ÷ 16628
62 ÷ 16314 = E
3 ÷ 1603

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:

BinarioHexadecimalDecimalBinarioHexadecimalDecimal
000000100088
000111100199
0010221010A10
0011331011B11
0100441100C12
0101551101D13
0110661110E14
0111771111F15

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:

PrefijoBaseEjemploValor decimal
0bBinario (2)0b101111
0oOctal (8)0o755493
0xHexadecimal (16)0x3E81000

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

DecimalBinarioOctalHexadecimal
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010
321000004020
64100000010040
100110010014464
12711111111777F
1281000000020080
25511111111377FF
256100000000400100

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.