Blog
Español

Conversor de bases numéricas — Binario, octal, decimal y hexadecimal

Conversión entre bases 2, 8, 10, 16, 36 y personalizada con BigInt, negativos y prefijos 0x/0b/0o

Funciona en tu navegador · no se sube nada

Qué es

El mismo número es 11111111 en binario, ff en hexadecimal y 255 en decimal. Las direcciones de memoria, los códigos de color, las máscaras de bits y los permisos de archivo de Unix (en octal) te obligan a leer valores en otra base. Escribe aquí un número y lo verás a la vez en base 2, 8, 10, 16, 36 y en la base que elijas.

Cómo se usa

  1. Escribe un número. Los espacios y _ se ignoran como separadores de dígitos, así que 1111_0000 es válido.
  2. Elige la base de entrada. La opción predeterminada, Automática, busca un prefijo 0x, 0b o 0o y, si no lo hay, usa decimal.
  3. Copia el valor que necesites de la tabla de resultados. La fila personalizada admite cualquier base de 2 a 36.
  4. Activa los dígitos en mayúsculas si prefieres FF a ff.

Cómo funciona

  • El análisis usa BigInt. Cada carácter se lee de izquierda a derecha y se acumula como valor = valor × base + dígito, así que no hay más límite de tamaño que el tope de 20.000 caracteres de la entrada.
  • Los valores de los dígitos salen de 0-9 y las letras a-z (sin distinguir mayúsculas), que valen de 0 a 9 y de 10 a 35. Por eso la base más alta posible es 36.
  • Un dígito cuyo valor es igual o mayor que la base se indica con su posición y los dígitos que admite esa base. Un 2 en binario o un 9 en octal es un error.
  • El signo (- o +) solo se reconoce al principio del todo, nunca después de un prefijo.
  • El número de bits es la longitud del valor absoluto escrito en binario; el cero cuenta como un bit.

Ejemplos

Entrada Base Binario Hexadecimal Decimal
255 10 11111111 ff 255
0xff Automática 11111111 ff 255
-0b101 Automática -101 -5 -5
18446744073709551617 10 un 1, sesenta y tres 0 y un 1 10000000000000001 18446744073709551617

2^64+1 pierde su último dígito como número normal de JavaScript, pero aquí sale exacto: 10000000000000001 en hexadecimal.

Notas

  • El octal es la base de chmod 755; el hexadecimal, la de las direcciones y los colores como #1e90ff; y la base 36 sirve para escribir identificadores cortos de forma compacta.
  • Si se cuela un carácter que no es un dígito, como una letra en decimal o una ñ, el error te dice en qué posición está.

Preguntas frecuentes

¿Los números muy grandes se convierten de forma exacta?

Sí. Los números normales de JavaScript solo son exactos hasta 2^53, pero esta herramienta calcula con enteros de precisión arbitraria (BigInt), así que los valores mayores que 2^64 se convierten sin perder ni un dígito. La entrada admite hasta 20.000 caracteres.

¿Cómo se muestran los números negativos?

Se conserva el signo y se convierte el valor absoluto, así que -255 es -ff en hexadecimal. No es un patrón de bits en complemento a dos; si lo necesitas para un ancho fijo, como 8 bits, tendrás que interpretar tú el resultado.

¿Puedo escribir los prefijos 0x o 0b?

Con la base de entrada en Automática se reconocen los prefijos 0x (hexadecimal), 0b (binario) y 0o (octal), y lo que no lleva prefijo se toma como decimal. Si eliges tú la base, solo se acepta el prefijo correspondiente; en base 16, el texto 0b1 son los dígitos 0, b y 1, no un prefijo.

¿Y los decimales?

Solo se admiten enteros. Un punto decimal se indica como carácter no válido junto con su posición.

¿Echas en falta alguna herramienta?