Cómo funciona la conversión de bases
Todo sistema numérico posicional representa un valor como suma de dígitos multiplicados por potencias de la base. Cambiar de base significa reescribir ese mismo valor contra una serie de potencias diferente.
- Validar el alfabeto de entrada. Cada base acepta un conjunto específico de dígitos. El binario acepta 0 y 1; el octal acepta 0-7; el decimal acepta 0-9; el hexadecimal acepta 0-9 y A-F. Un carácter fuera del alfabeto elegido muestra un error en línea antes de ejecutar ninguna conversión.
- Analizar el valor. Para valores que caben en un Number de JavaScript (hasta 2^53-1) la herramienta llama a
parseInt(text, base). Por encima de ese límite recurre aBigInt, de modo que la conversión permanezca exacta para enteros arbitrariamente grandes. - Renderizar en cada base de destino. El valor analizado se convierte a cada base de salida mediante
Number.prototype.toString(base)oBigInt.prototype.toString(base). Los cuatro paneles estándar (binario, octal, decimal, hex) y el panel de base personalizada se actualizan a la vez. - Aplicar formato. Un selector de prefijo añade 0b, 0o o 0x al inicio de la salida binaria, octal y hexadecimal. La agrupación de dígitos inserta un guion bajo cada cuatro dígitos binarios y cada dos dígitos hexadecimales. Un selector de mayúsculas elige letras en mayúsculas o minúsculas para A-F.
- Sincronización entre paneles en tiempo real. Editar cualquier panel dispara una reconversión con rebote de 100 ms que actualiza el resto. El panel que estás escribiendo se toma como fuente de verdad en cada pulsación.
Por qué usar un conversor de bases
- Leer volcados de memoria. Los depuradores, desensambladores y visores de volcados muestran direcciones y valores de registros en hexadecimal. Traducirlos a decimal permite compararlos con conteos, tamaños y offsets que aparecen en otros puntos del mismo rastro.
- Trabajar con códigos de color. CSS, herramientas de diseño y formatos de imagen escriben los colores como tripletes hex del tipo #d2511a. Convertir cada par a decimal transforma ese mismo color en la forma rgb(210, 81, 26) que espera tu selector de color o herramienta de accesibilidad.
- Decodificar permisos de archivo. Los valores chmod de Unix se escriben en octal: 755 significa rwxr-xr-x una vez que traduces cada dígito octal en sus tres bits binarios. El conversor muestra esa correspondencia en un paso para que puedas comprobar un conjunto de permisos sin abrir una página de manual.
- Depurar indicadores de bits. Los protocolos de red, las llamadas al sistema del kernel y los registros hardware agrupan muchos indicadores booleanos en un único entero. Leer el entero en binario muestra de un vistazo qué bits están activos, que es lo que necesitas cuando buscas por qué un indicador no surte efecto.
Aplicaciones comunes
La conversión de bases aparece en el trabajo diario de desarrollo, seguridad y hardware cuando un número es algo más que un simple conteo.
- Firmware embebido: lee un volcado hex de una sonda JTAG, localiza la dirección de una función y escribe un comando de punto de ruptura usando el offset decimal que acepta tu script de depuración.
- Seguridad de redes: analiza una máscara de red de 32 bits en decimal punteado convirtiéndola a binario para contar la longitud del prefijo y escribe la forma CIDR para una regla ACL.
- Puzzles CTF y retos de criptografía: alterna entre hex, decimal y binario mientras comparas un fragmento de clave filtrado con un texto plano candidato bajo XOR.
Un ejemplo resuelto
Escribe 255 en el panel decimal. El panel hex se actualiza a FF (o 0xFF con el prefijo activado), el panel binario a 11111111 (agrupado como 1111_1111) y el panel octal a 377. Cambia el radix del panel personalizado a 36 y el mismo valor se renderiza como 73. Escribe un valor mucho mayor como 123456789012345678901234567890 en el panel decimal; el panel hex usa la ruta BigInt y renderiza 18EE90FF6C373E0EE4E3F0AD2.
FAQ
¿Qué es una base numérica?
Una base numérica, o radix, es la cantidad de dígitos distintos que utiliza un sistema posicional antes de acarrear a la siguiente posición. El decimal (base 10) usa 0-9; el binario (base 2) usa solo 0 y 1; el hexadecimal (base 16) usa 0-9 más A-F. El valor de un número no cambia al cambiar de base: solo cambia la forma en que sus dígitos se escriben y agrupan.
¿Por qué se usa el hexadecimal en programación?
Un dígito hex equivale exactamente a cuatro bits binarios, por lo que dos dígitos hex cubren un byte y ocho dígitos hex cubren una palabra de 32 bits. Esto hace del hexadecimal la representación más compacta y legible para direcciones de memoria, contenidos de registros, tripletes de color y claves criptográficas. Leer 0xFF es más rápido que leer 11111111, y el patrón de bits está ahí si lo necesitas.
¿Puedo convertir más allá de la base 36?
Esta herramienta se detiene en la base 36 porque ese es el límite superior de las APIs nativas de JavaScript parseInt y toString, que aceptan 0-9 seguidos de A-Z como alfabeto de dígitos. Las bases 37-62 son posibles con un alfabeto personalizado (Base58, usada en las direcciones de Bitcoin, es un ejemplo), pero se plantean como una herramienta separada porque cada base superior necesita su propio orden canónico de dígitos.
¿Admite números negativos y decimales?
Los enteros negativos se representan con un signo menos inicial en cada base, el mismo comportamiento que incluye Number.prototype.toString. La representación en complemento a dos para un ancho de bits determinado (8, 16, 32, 64) es una vista separada que planeamos añadir. La conversión de bases en punto flotante también está fuera del alcance de esta versión; la herramienta trabaja únicamente con valores enteros.
La conversión de bases es una tarea pequeña que aparece una y otra vez en firmware, seguridad e informática gráfica. Realizarla en una pestaña del navegador, con las mismas primitivas aritméticas que ya incorporan Node y V8, mantiene el trabajo rápido y los datos en tu máquina.