Convierte enteros entre cualquier base de 2 a 64. Binario, octal, decimal, hexadecimal, base36, base58 y base64 a la vez, con precisión arbitraria mediante BigInt.
Convierte un número entero entre dos bases cualesquiera de 2 a 64. Introduce un valor, elige la base en la que está escrito y todas las representaciones habituales se actualizan al instante. La conversión usa BigInt de JavaScript, así que los números muy por encima de 2^53 conservan toda su precisión.
Entender los sistemas posicionales
Qué significa realmente una base
En un sistema posicional la base (o radix) indica cuánto vale cada posición. En base 10, 237 significa 2x100 + 3x10 + 7x1. En base 16 la misma cadena significa 2x256 + 3x16 + 7 = 567. El número no cambia al convertirlo, solo cambia la notación.
El alfabeto de dígitos
Un sistema en base N necesita N símbolos distintos. Los dígitos 0-9 cubren los diez primeros y luego entran las letras: a es 10, b es 11, y así hasta z que es 35. Por encima de base 36 el alfabeto continúa con mayúsculas y finalmente + y /, que es el orden que usa esta herramienta. Las bases hasta 36 se tratan sin distinguir mayúsculas porque es la convención casi universal; por encima de 36 las mayúsculas sí importan.
Dónde aparece cada base
Base 2 se corresponde directamente con el hardware. Registros, máscaras de bits y banderas de permisos se razonan mejor en binario.
Base 8 agrupa los bits de tres en tres, que es justo por lo que los permisos de archivo de Unix como 755 son octales.
Base 16 agrupa los bits de cuatro en cuatro, así que un dígito hexadecimal equivale a un nibble. Direcciones de memoria, códigos de color y hashes la usan.
Base 36 es la base más densa que sobrevive en sistemas insensibles a mayúsculas, como las etiquetas DNS.
Base 58 es base 62 menos los caracteres fáciles de confundir: 0, O, I y l. Las direcciones de Bitcoin y muchos acortadores la utilizan.
Base 64 codifica tres bytes en cuatro caracteres imprimibles y es la forma estándar de mover datos binarios por canales de solo texto.
Precisión
Los números nativos de JavaScript pierden exactitud por encima de 2^53. Este conversor trabaja íntegramente con BigInt, así que un valor decimal de 200 dígitos se convierte a binario sin redondeos silenciosos. Se admiten valores negativos y el signo se conserva entre bases.
Preguntas frecuentes
¿Por qué la base 58 omite algunos caracteres?
La base 58 descarta a propósito 0, O, I y l porque se confunden con facilidad impresos o escritos a mano. Eso hace más seguro transcribir direcciones manualmente, y por eso Bitcoin la adoptó.
¿La base64 de aquí es la misma que la de los adjuntos de correo?
No. Esta herramienta trata la base 64 como un sistema posicional para un único entero. La codificación de adjuntos (RFC 4648) opera sobre flujos de bytes y añade relleno con '='. Para eso usa la herramienta Base64.
¿Puedo convertir números muy grandes?
Sí. Todo pasa por BigInt, así que cientos de dígitos se convierten de forma exacta. No hay redondeo silencioso en 2^53 como ocurriría con números normales de JavaScript.
¿La entrada distingue mayúsculas?
Para bases hasta 36 no: 'FF' y 'ff' significan ambos 255 en hexadecimal. A partir de la base 37 mayúsculas y minúsculas son símbolos distintos, así que sí importan.
¿Cómo convierto un número negativo?
Basta con anteponer un signo menos. El signo se arrastra a todas las bases de salida. La representación en complemento a dos es un concepto aparte y no se aplica aquí.
¿Se envía algo a un servidor?
No. La conversión ocurre por completo en tu navegador, así que los valores que escribes nunca salen de tu equipo.