Conversor de bases numéricas

Introduce un entero en cualquier base de 2 a 36 o en Base62 y velo a la vez en binario, octal, decimal, hexadecimal, Base36 y Base62. Los números de cualquier longitud se convierten con exactitud.

Se ejecuta por completo en tu navegador. No se sube nada.

Cómo se usa

  1. Introduce el número que quieres convertir.
  2. En Base de entrada, selecciona la base en la que está escrito, de 2 a 36 o Base62.
  3. Lee el resultado en binario, octal, decimal, hexadecimal, Base36 y Base62 al mismo tiempo.
  4. Para cualquier otra base, elígela en Base personalizada como base de destino.

Números, no bytes

Esta herramienta convierte el valor de un número. El número decimal 255 es 11111111 en binario, 377 en octal, ff en hexadecimal y 73 en Base36.

Las codificaciones de bytes como Base16 y Base2 hacen otra cosa: codifican texto o archivos. El texto 255 son tres caracteres, almacenados como los bytes 32 35 35 en hexadecimal, o 00110010 00110101 00110101 en binario. Usa esta página para obtener el hexadecimal de un número, y los codificadores de bytes para el hexadecimal de unos caracteres o de un archivo.

Cómo funcionan las bases posicionales

En cualquier base, cada dígito vale la base elevada a la potencia de su posición, contando desde la derecha y empezando por cero. El hexadecimal ff es 15 × 16 + 15 = 255, y el binario 11111111 es 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Las bases mayores que 10 continúan los dígitos con letras, así que en Base36 a significa 10 y z significa 35. Base62 incorpora además la otra caja de letras, de modo que en ella las mayúsculas y las minúsculas tienen valores distintos.

Un dígito hexadecimal representa exactamente 4 bits, y un dígito octal, 3 bits. Por eso los programadores usan el hexadecimal y el octal como forma abreviada de escribir binario: 1111 1111 se convierte en ff grupo a grupo.

Números grandes y negativos

El conversor usa enteros de precisión arbitraria (BigInt de JavaScript), así que los números largos se mantienen exactos. Muchas calculadoras y los números normales de JavaScript pierden precisión por encima de 9007199254740991 (2 elevado a 53, menos 1). Por ejemplo, parseInt('ffffffffffffffff', 16) devuelve 18446744073709552000, mientras que el valor correcto, el mayor entero de 64 bits sin signo, es 18446744073709551615.

Un número negativo se convierte con su signo menos, así que -255 es -ff en hexadecimal. No es la representación en complemento a dos que se usa para los enteros de ancho fijo en memoria. Para obtenerla, suma primero 2 elevado al ancho: para 8 bits, -1 + 256 = 255, que es ff. Solo se admiten números enteros, no fracciones. Todo se ejecuta en tu navegador.

Conversión de bases en código

// JavaScript
parseInt('ff', 16);                          // 255
(255).toString(2);                           // '11111111'
BigInt('0xffffffffffffffff').toString(10);   // '18446744073709551615'

# Python
int('ff', 16)                  # 255
bin(255), oct(255), hex(255)   # ('0b11111111', '0o377', '0xff')

Preguntas frecuentes

¿Cómo convierto de binario a decimal?

Introduce el número binario, selecciona la base 2 y lee el resultado decimal. A mano, suma los valores posicionales de cada dígito 1: 1010 en binario es 8 + 2 = 10.

¿Cómo convierto de decimal a hexadecimal?

Introduce el número con la base 10 seleccionada y lee el resultado hexadecimal. A mano, divide por 16 repetidamente y escribe los restos en orden inverso: 255 entre 16 da 15 con resto 15, lo que da ff.

¿Hay un límite para el tamaño del número?

No hay un límite fijo. La herramienta usa aritmética BigInt, así que un número de cientos de dígitos se convierte con exactitud. Los números muy largos simplemente tardan un poco más.

¿Por qué el hexadecimal de 255 que da esta página es distinto del que da el codificador Base16?
Esta página convierte el número 255, que es ff. El codificador Base16 convierte el texto 255, tres caracteres cuyos bytes son 32 35 35. Usa el que corresponda a tus datos.
¿Puedo convertir números con parte fraccionaria?

No. El conversor solo trabaja con enteros. Las fracciones como 0,1 a menudo no tienen una representación exacta en otra base, así que quedan fuera de su alcance.