Conversor de Base Numérica
Convierte un número entre binario, octal, decimal y hexadecimal en vivo, o entre dos bases cualesquiera de 2 a 36.
Escribe en cualquier campo, los otros tres se actualizan en vivo. Admite números negativos y enteros arbitrariamente grandes.
Conversión de base personalizada
Convierte entre dos bases cualesquiera de 2 a 36.
Cómo funciona
Cada valor que escribes se analiza como un BigInt de JavaScript, un tipo entero de precisión arbitraria integrado en el navegador. El análisis recorre tu entrada dígito por dígito, multiplicando el total acumulado por la base y sumando el valor de cada dígito; la conversión de vuelta divide repetidamente entre la base objetivo y recopila los restos. Los dígitos por encima de 9 usan letras, así que la base 36 recorre 0-9 y luego a-z. Los números negativos también funcionan: se separa un signo menos inicial antes de analizar y se vuelve a pegar al final.
La parte de BigInt es el detalle que vale la pena conocer. Los conversores construidos sobre números planos de JavaScript corrompen silenciosamente cualquier valor por encima de 9.007.199.254.740.991 (2^53 - 1), porque ahí es donde la coma flotante deja de representar cada entero exactamente. Pega un valor hexadecimal de 16 dígitos como ffffffffffffffff en uno de esos y obtienes una respuesta redondeada e incorrecta sin ninguna advertencia. Aquí la matemática es exacta a cualquier longitud: un decimal de 100 dígitos se convierte a binario correctamente, solo requiere más dígitos.
Cada campo se valida contra su propia base mientras escribes, así que introducir un 9 en la casilla octal o una g en hex muestra un error en vez de un resultado erróneo, y los otros tres campos se actualizan en vivo desde el que hayas editado. Todo esto ocurre en tu pestaña: revisa el panel Red de las DevTools y verás que la página no hace ninguna petición mientras escribes, así que los números que conviertes nunca salen de tu máquina.