Conversor de bases numéricas
Convierte números enteros entre binario, octal, decimal, hexadecimal y cualquier base hasta 36, con complemento a dos y códigos de texto.
Cómo utilizar
Escribe un número entero y elige la base en que está escrito, o deja Automático: entonces 0x indica hexadecimal, 0o octal, 0b binario y cualquier otra cosa decimal. El resultado muestra el número en decimal, binario, octal y hexadecimal, cada uno con su botón para copiar, y en otra base a tu elección entre 2 y 36. Los espacios y guiones bajos entre cifras se ignoran, así que 1_000_000 funciona.
Las bases mayores que 10 usan letras después del dígito 9: a es 10, f es 15 y z es 35, por eso la base 36 es la más alta. Se convierten con exactitud números de cualquier longitud. Los números normales de JavaScript solo son exactos hasta 9.007.199.254.740.991 (2⁵³ − 1); a partir de ahí, muchos conversores redondean las últimas cifras sin avisar.
Con números negativos, el resultado muestra también el complemento a dos, la forma en que los procesadores guardan los enteros con signo, en 8, 16, 32 o 64 bits. Un entero con signo de n bits va de −2ⁿ⁻¹ a 2ⁿ⁻¹ − 1, así que 8 bits van de −128 a 127; un número que no cabe se señala, y uno positivo que solo cabe sin signo se muestra como entero sin signo. Los dígitos binarios pueden agruparse de cuatro en cuatro o de ocho en ocho para leer mejor los valores largos; el botón de copiar los copia siempre sin espacios.
El modo texto convierte un texto en los bytes con que lo guarda UTF-8, en binario, decimal y hexadecimal, con el punto de código Unicode de cada carácter, y convierte códigos de bytes de nuevo en texto. Todo se calcula en tu navegador.
Ejemplo
−5 en complemento a dos de 8 bits es 11111011, FB en hexadecimal: el procesador guarda 256 − 5 = 251.
255Binario 11111111, octal 377, hexadecimal FF.-5 en 8 bitsComplemento a dos 11111011, 0xFB.90071992547409932⁵³ + 1, convertido con exactitud: hexadecimal 20000000000001. Un número normal de JavaScript lo convertiría en …992.€ en modo textoBytes UTF-8 E2 82 AC: tres bytes para un solo carácter, punto de código U+20AC.
Preguntas frecuentes
¿Por qué el hexadecimal usa letras?
La base 16 necesita dieciséis dígitos y del 0 al 9 solo hay diez. Las letras de la a a la f valen de 10 a 15, así que ff es 15 × 16 + 15 = 255. Mayúsculas y minúsculas significan lo mismo.
¿Qué es el complemento a dos?
La forma habitual en que los ordenadores guardan los enteros negativos: en n bits, un número negativo −x se guarda como 2ⁿ − x. Con 8 bits, −1 es 11111111 y −128 es 10000000. Permite al procesador sumar y restar igual números con y sin signo.
¿Por qué algunos conversores fallan con números grandes?
Porque usan los números normales de JavaScript, que solo son exactos hasta 9.007.199.254.740.991. Esta herramienta usa aritmética de enteros de cualquier tamaño, así que conserva todas las cifras.
¿Qué significan 0x, 0o y 0b?
Son prefijos que usan lenguajes de programación como JavaScript y Python: 0x para hexadecimal, 0o para octal y 0b para binario. En modo Automático la herramienta los lee; con una base elegida, también acepta el prefijo que le corresponde.
¿Se envía a algún sitio lo que escribo?
No. La conversión se hace en tu navegador.