Binario, octal, decimal y hex — y cualquier base hasta 36
Escribe un número en binario, octal, decimal, hexadecimal o cualquier base de 2 a 36 y míralo en todas las demás a la vez. Los números pueden ser tan grandes como quieras — el conversor usa enteros de precisión arbitraria, así que un valor de 64 o 128 bits conserva cada dígito — y los negativos se muestran en complemento a dos a 8, 16, 32, 64 y 128 bits, con una vista de bits en la que puedes hacer clic para invertir bits sueltos. Entiende prefijos como <code>0x</code> y separadores como <code>1_000_000</code>. Todo se ejecuta en tu navegador.
Cómo convertir entre bases numéricas
- 1Elige la base en la que escribes: Bin, Oct, Dec, Hex o Otra para cualquier base de 2 a 36.
- 2Escribe o pega el número. Se aceptan el signo menos, los prefijos
0x,0by0o, y espacios, guiones bajos o comas entre dígitos. - 3Lee el resultado en todas las bases a la vez, con los dígitos agrupados para leerlos mejor. Elige otra base en la última fila o activa Todas las bases 2–36.
- 4Consulta la tabla de complemento a dos para ver la lectura con y sin signo en cada ancho, haz clic en los bits de la vista de bits para invertirlos y copia la forma que necesites.
Cómo funcionan los sistemas posicionales
En cualquier base, cada dígito vale la base elevada a su posición, contando desde cero por la derecha. En decimal, 255 es 2×10² + 5×10¹ + 5×10⁰. En binario el mismo número es 11111111: ocho unos, que valen 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1. En hexadecimal es FF: 15×16 + 15.
Las bases mayores que 10 necesitan más de diez símbolos, así que las letras continúan la cuenta: A es 10, B es 11 y así hasta Z para 35 — por eso 36 es la base más grande que usa los dígitos y letras habituales. Las letras se leen sin distinguir mayúsculas de minúsculas.
Por qué los programadores usan binario, octal y hex
- Binario (base 2)
- Así lo guarda todo la máquina. Útil para flags de bits, máscaras y subredes, pero largo: un valor de 32 bits tiene 32 dígitos.
- Hexadecimal (base 16)
- Cada dígito hex son exactamente cuatro bits, así que un byte son dos dígitos hex y un valor de 32 bits son ocho. Se usa en direcciones de memoria, colores (#FF8800), hashes, UUID y volcados de bytes.
- Octal (base 8)
- Cada dígito octal son tres bits. Sobrevive sobre todo en los permisos de archivos Unix, donde 755 son tres grupos de bits rwx — consulta la <a href="/chmod-calculator">calculadora chmod</a>.
- Base 36 y base 62
- Los identificadores compactos que no distinguen mayúsculas, como URL cortas e ID, usan base 36 (0–9 y a–z). La base 62 añade mayúsculas y queda fuera de lo que cubre esta herramienta.
Complemento a dos y números negativos
Los ordenadores guardan los enteros con signo en complemento a dos: con un ancho fijo de n bits, un número negativo −x se guarda como 2ⁿ − x. A 8 bits, −1 es 11111111 (0xFF), −128 es 10000000 (0x80), y el bit más alto hace también de signo. Un entero con signo de 8 bits va de −128 a 127; los mismos 8 bits leídos sin signo van de 0 a 255.
La tabla de complemento a dos muestra ambas lecturas para cada ancho habitual. Escribe 0xFFFFFFFF y verás que es 4.294.967.295 como entero de 32 bits sin signo y −1 con signo; escribe -42 y obtendrás su patrón de bits en cada ancho. Si un valor es demasiado grande para un ancho, la fila lo indica en lugar de truncarlo en silencio.
Números grandes y precisión
Los números normales de JavaScript pierden precisión por encima de 2⁵³ (9.007.199.254.740.992), por eso muchos conversores online fallan con ID y hashes de 64 bits. Este conversor usa BigInt en todo momento, así que es exacto con números de cualquier tamaño — un valor de 128 bits, un hash SHA-256 leído como entero o un número de 20.000 dígitos.
Solo se convierten números enteros. Las fracciones en otras bases rara vez terminan (0,1 en decimal es una fracción periódica infinita en binario), así que para patrones de bits de coma flotante y marcas de tiempo consulta el conversor de timestamp Unix.
Preguntas frecuentes
- ¿Cómo convierto binario a decimal?
- Elige Bin, escribe el número binario y lee la fila decimal. A mano, suma las potencias de dos de cada 1: 1011 es 8 + 0 + 2 + 1 = 11.
- ¿Cómo convierto decimal a hexadecimal?
- Elige Dec, escribe el número y lee la fila hexadecimal. A mano, divide entre 16 repetidamente y escribe los restos del último al primero: 255 ÷ 16 = 15 resto 15, así que 255 es FF.
- ¿Qué significa el prefijo 0x?
- 0x marca un número hexadecimal en C, JavaScript, Python y la mayoría de lenguajes, igual que 0b marca binario y 0o octal. El conversor acepta estos prefijos en la entrada y puede añadirlos a la salida.
- ¿Cómo se convierten los números negativos?
- En cada base el resultado conserva el signo menos, como -2A en hex. La tabla de complemento a dos y la vista de bits muestran cómo se guarda el mismo número en un entero con signo de 8, 16, 32, 64 o 128 bits.
- ¿Por qué 0xFF aparece como 255 y como -1?
- Los mismos ocho bits significan 255 leídos como byte sin signo y -1 leídos como byte con signo en complemento a dos. Cuál es correcto depende del tipo que lo almacena.
- ¿Hay un límite de tamaño para el número?
- Ninguno en la práctica: los números de hasta 20.000 dígitos se convierten con exactitud, porque el conversor usa enteros de precisión arbitraria en lugar de coma flotante.
- ¿Puedo convertir fracciones o decimales?
- No, solo números enteros. La mayoría de fracciones no tienen representación exacta en otras bases, así que el conversor pide un entero en lugar de dar una respuesta redondeada.
- ¿Se envía mi entrada a algún sitio?
- No. Toda la conversión ocurre en tu navegador.