Conversor de bases: Decimal, Hex, Base32, Base64
Convierte números entre decimal y Base16 (hex), Base32 y Base64 en ambos sentidos, con detección automática de base. Codifica o decodifica al instante.
Convertidor Bidireccional de Bases
Convierte entre números decimales y codificaciones de bases estándar (Base16/Hex, Base32, Base64). Ingresa un valor en cualquier campo para convertir.
Ingrese un número entero positivo (máx: 9.007.199.254.740.991)
Ingrese un valor codificado en Base16, Base32 o Base64
Acerca de las Codificaciones de Bases
Documentación
Convertidor bidireccional de bases
Un convertidor de bases cambia la forma en que se escribe un número, sin cambiar el número en sí. Esta herramienta convierte un número decimal a Base16 (hexadecimal), Base32 o Base64, y convierte un valor codificado de nuevo a decimal. También detecta cuál de las tres codificaciones utiliza un valor pegado.
Qué es una base numérica
Una base numérica, también llamada radix, es la cantidad de símbolos diferentes que utiliza un sistema numérico para un solo dígito. El sistema decimal es de base 10 y utiliza los dígitos del 0 al 9. Los ordenadores suelen almacenar números en otras bases porque esas bases representan el mismo valor con menos caracteres o porque el conjunto de caracteres se puede enviar de forma segura mediante sistemas de solo texto, como el correo electrónico o una URL.
Esta herramienta funciona con tres bases de este tipo:
- Base16 (hexadecimal). Utiliza los 16 símbolos
0–9yA–F. Cada carácter almacena 4 bits. Es habitual en códigos de color, direcciones de memoria y valores hash. - Base32. Utiliza los 32 símbolos
A–Zy2–7, definidos por el estándar de Internet RFC 4648. Cada carácter almacena 5 bits. Evita letras y números de apariencia similar, como0yO, lo que facilita leerlos en voz alta o escribirlos a mano. - Base64. Utiliza 64 símbolos:
A–Z,a–z,0–9,+y/, también definidos por el RFC 4648. Cada carácter almacena 6 bits. Es la forma estándar de insertar datos binarios en texto, como un archivo adjunto de correo electrónico o un campo JSON.
Cómo convertir un número decimal a Base16, Base32 o Base64
La herramienta primero divide el número decimal en bytes, grupos de 8 bits, escritos en orden big-endian (el byte más significativo primero). Después lee esos bits en grupos del tamaño correspondiente a la base de destino: 4 bits cada vez para Base16, 5 bits cada vez para Base32 o 6 bits cada vez para Base64. Cada grupo de bits se busca en la tabla de símbolos de esa base para producir un carácter de salida.
Como Base32 y Base64 leen los bits en grupos de 5 o 6, el último grupo de un número a menudo no coincide con un límite de byte de 8 bits. La herramienta rellena los bits restantes con ceros y, para Base32 y Base64, añade caracteres = al final, de modo que la longitud de salida siempre sea múltiplo de 8 caracteres (Base32) o 4 caracteres (Base64).
Base16 siempre utiliza un número entero de pares, cada uno de 2 caracteres, un par por byte. Si un valor necesitara un número impar de dígitos hexadecimales, se añade un cero inicial, de modo que la cadena siempre represente un número entero de bytes.
Fórmula y ejemplo de Base16
Cada byte se convierte exactamente en dos dígitos hexadecimales, cuyo valor es 16 veces el primer dígito más el segundo:
donde v es el valor del byte, a el primer dígito hexadecimal y b el segundo.
Ejemplo: 255 en decimal. 255 cabe en un byte. 255 ÷ 16 = 15, resto 15, y 15 se escribe como F, por lo que 255 se convierte en FF. Por eso el código de color #FFFFFF es blanco: tres bytes, cada uno con su valor máximo.
Ejemplo: 1000 en decimal. 1000 necesita dos bytes: 1000 = 3 × 256 + 232. El primer byte, 3, se convierte en 03. El segundo byte, 232, es 14 × 16 + 8, que se convierte en E8. Juntos, 1000 en Base16 es 03E8, no 3E8: la salida hexadecimal siempre se rellena hasta completar bytes, por lo que un valor inferior a 16 en el byte superior también recibe un cero inicial.
Ejemplos de Base32 y Base64
Utilizando los mismos dos números anteriores:
| Decimal | Base16 | Base32 | Base64 |
|---|---|---|---|
| 255 | FF | 74====== | /w== |
| 1000 | 03E8 | APUA==== | A+g= |
Cómo convertir un valor codificado de nuevo a decimal
Pegue una cadena Base16, Base32 o Base64 en el campo de codificación y seleccione esa base en el menú desplegable situado junto a él. La herramienta comprueba los caracteres con respecto al alfabeto de esa base, invierte los pasos anteriores y muestra el valor decimal. La decodificación de FF como Base16 da 255.
La herramienta también indica qué base parece utilizar un valor pegado. Ese nombre solo sirve de orientación. El menú desplegable sigue determinando cómo se interpreta el valor, porque el alfabeto de Base16 está incluido en el alfabeto de Base32 y una cadena corta como ABCD es válida en ambas.
La entrada Base16 puede mezclar mayúsculas y minúsculas; la herramienta trata ff y FF de la misma forma. Un número impar de dígitos hexadecimales se interpreta según su valor posicional, suponiendo un cero inicial, de modo que 1F4 y 01F4 dan 500. La entrada Base32 debe escribirse en mayúsculas: el decodificador de la herramienta no acepta letras Base32 minúsculas y mostrará un error si las encuentra. Base64 trata las letras mayúsculas y minúsculas como símbolos diferentes, tal como exige el formato, por lo que deben escribirse exactamente como se muestran.
Algunas cadenas nunca pueden proceder de un codificador, y la herramienta las rechaza en lugar de hacer suposiciones. El RFC 4648 construye Base64 en grupos de 4 caracteres y Base32 en grupos de 8. Sin contar el relleno =, una cadena Base64 con 1 carácter más que un múltiplo de 4, o una cadena Base32 con 1, 3 o 6 caracteres más que un múltiplo de 8, no contiene ningún byte completo. Esa entrada produce un error en lugar de un número.
Límites del intervalo
El número más grande que acepta la herramienta es 9,007,199,254,740,991, igual a 2^53 − 1. Es el número entero más grande que el motor JavaScript de un navegador web puede representar exactamente. Por encima de ese límite, algunos enteros ya no se pueden almacenar con precisión, por lo que la herramienta muestra un error en lugar de devolver silenciosamente un valor incorrecto. Se aceptan cero y cualquier número entero hasta ese límite; el número no tiene que ser positivo, solo no negativo.
El límite se aplica en ambas direcciones. Una cadena codificada que representa un número mayor, como el valor Base16 20000000000000 (que es 2^53), se rechaza en lugar de redondearse. Las fracciones también se rechazan: las codificaciones describen bytes completos, por lo que 1.5 produce un error en lugar de un resultado redondeado.
Dónde se utiliza cada codificación
- Base16 aparece en valores de color CSS y HTML, direcciones MAC e IPv6, y valores hash utilizados para comprobar que un archivo no se haya alterado.
- Base32 aparece en claves de configuración de la autenticación de dos factores, algunos sistemas para compartir archivos y otros identificadores pensados para leerse en voz alta o escribirse a mano.
- Base64 aparece en URI
data:, archivos adjuntos de correo electrónico y tokens web como los JWT, allí donde los datos binarios deben pasar por un sistema diseñado para texto.
La conversión entre estas codificaciones nunca cambia el número subyacente. Solo cambia cuántos caracteres se necesitan para escribirlo y qué sistemas pueden transportar ese texto de forma segura.
Preguntas frecuentes
¿Cuál es la diferencia entre Base16, Base32 y Base64? Se diferencian en la cantidad de símbolos que puede representar cada carácter: 16, 32 o 64. Más símbolos por carácter significan una cadena codificada más corta para el mismo número, a cambio de un alfabeto más grande que debe leerse.
¿Por qué 1000 se codifica como 03E8 en lugar de 3E8 en Base16?
La salida hexadecimal se rellena hasta completar un número entero de bytes, con dos dígitos hexadecimales por byte. 1000 necesita dos bytes, por lo que el resultado siempre tiene cuatro dígitos hexadecimales, aunque el dígito inicial sea cero.
¿Base32 no distingue entre mayúsculas y minúsculas? El alfabeto Base32 está definido con letras mayúsculas. El decodificador de esta herramienta solo acepta entradas Base32 en mayúsculas; las letras minúsculas producirán un error.
¿Cuál es el número más grande que puede manejar el convertidor? 9,007,199,254,740,991, que es 2^53 − 1. Este es el límite de precisión exacta de los enteros en JavaScript, el lenguaje en el que funciona la herramienta.
¿Puedo convertir un número negativo? No. La herramienta solo acepta números enteros iguales o mayores que cero.
¿Por qué la herramienta rechaza algunas cadenas que parecen Base64 válidas? Base64 se escribe en grupos de 4 caracteres, por lo que un valor cuya longitud sea 1 más que un múltiplo de 4 no codifica ningún byte completo. Ningún codificador puede producirlo, así que la herramienta muestra un error en lugar de devolver un número.
¿Convertir un número entre bases cambia su valor?
No. Solo cambia la forma escrita. 255, FF, 74====== y /w== representan exactamente el mismo número.