Tabla de conversión binario, octal, decimal y hexadecimal

Binario, octal, decimal y hexadecimal lado a lado, del 0 al 65536.

Sin registro, sin rastreo

Las computadoras cuentan en binario, las direcciones de memoria y los colores se escriben en hexadecimal, y los permisos de archivos de Unix son octales. Pasar de una base a otra es una tarea rutinaria más que un problema interesante, y para eso sirve exactamente una tabla de consulta.

Esta página reúne las tablas que vale la pena guardar: la tabla de dieciséis filas que vuelve mecánica la conversión de binario a hexadecimal, el listado completo del 0 al 32, las potencias de dos hasta 2^16 y los valores de byte que aparecen una y otra vez en ASCII, en las máscaras de subred y en UTF-8. Al final hay ejercicios resueltos paso a paso para hacer cada conversión a mano. Todos los valores de aquí los generó un programa, no se escribieron de memoria.

La tabla de 4 bits: la única que vale la pena memorizar

Dieciséis es una potencia de dos, y esa es toda la razón por la que existe el hexadecimal. Un dígito hexadecimal codifica exactamente cuatro dígitos binarios —un nibble— sin resto y sin acarreos entre grupos. Apréndete estas dieciséis filas y toda conversión de binario a hexadecimal se vuelve una consulta en vez de una operación.

DecimalBinario (4 bits)OctalHexadecimal
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Tabla de conversión del 0 al 32

Escrita sin ceros a la izquierda, para que veas cuántos bits necesita realmente cada valor. Fíjate dónde salta la cantidad de dígitos: en 2, 4, 8, 16 y 32. Cada potencia de dos agrega un bit.

DecimalBinarioOctalHexadecimal
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010
17100012111
18100102212
19100112313
20101002414
21101012515
22101102616
23101112717
24110003018
25110013119
2611010321A
2711011331B
2811100341C
2911101351D
3011110361E
3111111371F
321000004020

Potencias de dos

Estos son los números que explican por qué un búfer mide 4096 bytes, por qué un byte sin signo se detiene en 255 y por qué un número de puerto no puede pasar de 65535. En binario una potencia de dos siempre es un único 1 seguido de ceros, y en hexadecimal siempre es 1, 2, 4 u 8 seguido de ceros.

PotenciaDecimalBinarioHexadecimal
2^0111
2^12102
2^241004
2^3810008
2^4161000010
2^53210000020
2^664100000040
2^71281000000080
2^8256100000000100
2^95121000000000200
2^10102410000000000400
2^112048100000000000800
2^12409610000000000001000
2^138192100000000000002000
2^1416.3841000000000000004000
2^1532.76810000000000000008000
2^1665.5361000000000000000010000

Valores de byte más comunes

Un byte guarda 8 bits, o sea exactamente 256 valores, y se escribe con dos dígitos hexadecimales. Estos son los que de verdad te encuentras al leer un volcado hexadecimal o al depurar un problema de codificación.

DecimalBinario (8 bits)HexadecimalQué es
00000000000Byte nulo
90000100109Tabulador
10000010100ASalto de línea (LF, nueva línea en Unix)
13000011010DRetorno de carro (CR)
27000110111BEscape — inicia los códigos ANSI de terminal
320010000020Espacio
480011000030Dígito «0»
570011100139Dígito «9»
650100000141Letra «A»
90010110105ALetra «Z»
970110000161Letra «a»
122011110107ALetra «z»
127011111117FDEL — último valor del ASCII de 7 bits
1281000000080Primer byte fuera de ASCII; mínimo de INT8 en complemento a dos
16010100000A0Espacio duro en Latin-1
19110111111BFLímite superior de los bytes de continuación UTF-8
19211000000C0Octeto habitual de máscara de subred (/26)
22411100000E0Octeto de máscara de subred (/27)
24011110000F0Octeto de máscara de subred (/28); nibble alto en 1
25411111110FEOcteto útil más alto en muchas redes
25511111111FFMáximo de UINT8; los ocho bits en 1

Cómo convertir a mano, paso a paso

Con tres procedimientos cubres todo. De binario a decimal es una suma, de decimal a binario son divisiones sucesivas, y de binario a hexadecimal es puro agrupamiento: este último no requiere ninguna operación aritmética.

  1. Binario a decimal: etiqueta cada bit con su potencia de dos, de derecha a izquierda empezando en 2^0, y suma las potencias donde el bit valga 1.
  2. Decimal a binario: divide entre 2 repetidamente y anota cada resto, hasta que el cociente llegue a 0. Lee los restos de abajo hacia arriba.
  3. Binario a hexadecimal: rellena con ceros a la izquierda hasta que la longitud sea múltiplo de 4, separa en grupos de cuatro desde la derecha y sustituye cada grupo con la tabla de nibbles de arriba.
  4. Hexadecimal a binario: sustituye cada dígito hexadecimal por su patrón de cuatro bits y concaténalos. Sin acarreos ni operaciones.
  5. Binario a octal: igual que con hexadecimal pero en grupos de tres bits, porque 8 es 2^3.

Ejercicios resueltos

Binario a decimal: 10011100
2^7 (128) + 2^4 (16) + 2^3 (8) + 2^2 (4) = 156
Suma las potencias de dos donde el bit vale 1
Decimal a binario: 156
156 ÷ 2 = 78 resto 0
78 ÷ 2 = 39 resto 0
39 ÷ 2 = 19 resto 1
19 ÷ 2 = 9 resto 1
9 ÷ 2 = 4 resto 1
4 ÷ 2 = 2 resto 0
2 ÷ 2 = 1 resto 0
1 ÷ 2 = 0 resto 1
Lee los restos de abajo hacia arriba: 10011100
Divisiones sucesivas entre 2
Binario a hexadecimal: 11001010
1100 1010  →  C A  →  0xCA
Separa en nibbles y busca cada uno en la tabla
Decimal a binario: 202
202 ÷ 2 = 101 resto 0
101 ÷ 2 = 50 resto 1
50 ÷ 2 = 25 resto 0
25 ÷ 2 = 12 resto 1
12 ÷ 2 = 6 resto 0
6 ÷ 2 = 3 resto 0
3 ÷ 2 = 1 resto 1
1 ÷ 2 = 0 resto 1
Restos de abajo hacia arriba: 11001010
Comprobación: 2^7 (128) + 2^6 (64) + 2^3 (8) + 2^1 (2) = 202
Un segundo ejercicio, con comprobación por suma de potencias
Decimal a binario: 45
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
Restos de abajo hacia arriba: 101101
Comprobación: 2^5 (32) + 2^3 (8) + 2^2 (4) + 2^0 (1) = 45
Un tercer ejercicio para practicar
Hexadecimal a decimal: 0x2F
2 × 16 + 15 = 47

Binario a octal: 10011100
010 011 100  →  2 3 4  →  0o234
Peso posicional, y agrupamiento de tres en tres para el octal

Errores frecuentes

  1. Los ceros a la izquierda no aportan valor numérico pero sí aportan ancho. 00001010 y 1010 son ambos el decimal 10, pero el primero dice «un byte» y el segundo dice «cuatro bits», y el ancho es justo lo que importa en un protocolo o en una estructura.
  2. Los prefijos indican la base: 0b para binario, 0o para octal y 0x para hexadecimal. Un 10 pelado es ambiguo, y 0755 en los lenguajes de estilo C es el octal 493, no el decimal 755.
  3. Los números negativos suelen usar complemento a dos, no un bit de signo. En 8 bits, 11111111 es -1 y 10000000 es -128. Para negar un valor, invierte todos los bits y suma 1.
  4. Los dígitos hexadecimales de la A a la F no distinguen mayúsculas como valor. #FF0000 y #ff0000 son el mismo color; solo a las guías de estilo les importa.
  5. El orden de los bytes es un asunto aparte de la base. El valor de 32 bits 0x12345678 se puede guardar como 12 34 56 78 o como 78 56 34 12 según la endianidad, y por eso un volcado hexadecimal a veces se ve desordenado.

Convierte valores fuera de esta tabla

Estas tablas terminan donde termina su utilidad. Para cualquier cosa más grande —una máscara de 32 bits, un fragmento de hash, un entero cualquiera— el Convertidor de Bases de este sitio convierte entre binario, octal, decimal y hexadecimal en cualquier dirección mientras escribes, y muestra las cuatro bases a la vez para que compares tus ejercicios a mano con el resultado. Funciona por completo en tu navegador, sin enviar nada a ningún servidor.

Herramientas relacionadas