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
- Escribe un número. Los espacios y
_se ignoran como separadores de dígitos, así que1111_0000es válido. - Elige la base de entrada. La opción predeterminada, Automática, busca un prefijo
0x,0bo0oy, si no lo hay, usa decimal. - Copia el valor que necesites de la tabla de resultados. La fila personalizada admite cualquier base de 2 a 36.
- Activa los dígitos en mayúsculas si prefieres
FFaff.
Cómo funciona
- El análisis usa
BigInt. Cada carácter se lee de izquierda a derecha y se acumula comovalor = 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
2en binario o un9en 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.