piapia123
es

Conversor de bases numéricas (2 / 8 / 10 / 16 / 36 / 64)

Conversión

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Convierte un número entre binario, octal, decimal, hexadecimal, base 36 y base 64, con los seis resultados listados a la vez para no tener que cambiar de desplegable una y otra vez. Los prefijos 0x, 0o y 0b se detectan automáticamente, y los guiones bajos o espacios pegados desde el código se toleran. La aritmética usa BigInt en lugar de números normales: por encima de 2^53 un número de coma flotante pierde los dígitos finales sin avisar, de modo que un snowflake ID se convierte en algo que parece correcto pero no lo es, y sin lanzar ningún error.

Funciones

  • Los resultados en binario, octal, decimal, hex, base 36 y base 64, todos a la vez
  • La base 64 usa el alfabeto Base64 estándar (0-9 A-Z a-z + /), donde mayúsculas y minúsculas son dígitos distintos
  • Detección automática del prefijo: 0x hexadecimal, 0o octal, 0b binario
  • Exacto para enteros de cualquier longitud: los snowflake ID y números de pedido de 19 dígitos salen sin un dígito de diferencia
  • Indica además el número de bits y si el valor cabe en un entero con signo de 64 bits
  • Los guiones bajos y los espacios actúan como separadores, así que los literales pegados funcionan tal cual
  • Un prefijo que contradice la base elegida da error, no una elección silenciosa
  • Los decimales se rechazan de plano: 0,1 es una fracción periódica en binario y no tiene respuesta exacta

Cómo se usa

  1. Pega un número; un prefijo 0x / 0o / 0b se detecta automáticamente
  2. Elige la base de entrada y las opciones de prefijo o mayúsculas si las necesitas
  3. Las seis bases aparecen a la vez
  4. Haz clic en «Copiar» para llevarte el resultado

Preguntas frecuentes

¿Por qué los enteros grandes necesitan un trato especial?
Los números de JavaScript son de coma flotante de doble precisión: por encima de 2^53 los enteros contiguos dejan de distinguirse, así que 1234567890123456789 se convierte en 1234567890123456800 sin decir nada. Ese tamaño es justo el de los snowflake ID y las claves autoincrementales, así que esta herramienta usa BigInt en todo momento y nunca toca la coma flotante.
¿Por qué los resultados en base 36 y base 64 no llevan prefijo?
0x, 0o y 0b son los tres prefijos que define JavaScript. Ni la base 36 ni la base 64 tienen un prefijo estándar, e inventar uno produciría un resultado que no se puede volver a pegar en el código, así que no se añade ninguno.
¿Qué alfabeto usa la base 64?
Empieza por `0-9`, sigue con las 26 mayúsculas y luego las 26 minúsculas, y termina en `+` y `/`: la misma tabla que usa la codificación Base64, salvo que aquí se emplea como un conjunto de dígitos (el décimo es `A`) y no para empaquetar bytes de tres en tres. ⚠️ Dos cosas que conviene saber: aquí mayúsculas y minúsculas son dígitos distintos (`A` es 10 y `a` es 36), así que el interruptor de mayúsculas no se le aplica; forzar un solo caso cambiaría la mitad de los valores posicionales. Y `+` y `/` necesitan escape antes de ir en una URL o un nombre de archivo; para eso usa Base64URL o directamente la base 36.
¿Admite decimales?
No, y es deliberado: el 0,1 decimal es una fracción periódica en binario, así que cualquier salida con un número finito de dígitos sería una aproximación. Prácticamente toda conversión real de bases trabaja con enteros, así que aquí solo se admiten enteros y los decimales se rechazan con una explicación.
¿Qué significa «necesita 64 bits sin signo»?
Que el valor supera 2^63-1 y ya no cabe en un entero con signo de 64 bits. Las bases de datos distinguen columnas BIGINT con signo y sin signo, así que comprueba el tipo de la columna antes de insertar, o el valor se desbordará o se truncará.

Herramientas relacionadas