Conversor de bases numéricas: binario, hexadecimal, decimal, octal y base 2–36

Convierte enteros de cualquier tamaño entre binario, octal, decimal, hexadecimal, base 32, base 36 y cualquier base de 2 a 36, con vista de complemento a dos.

Escribe en cualquier campo. Se aceptan los prefijos 0x, 0b y 0o, un signo menos inicial y espacios, comas o guiones bajos entre los dígitos.

16 bits · 2 bytes (magnitud) · 5 dígitos decimales

Complemento a dos (ancho fijo)

AnchoPatrón de bitsHexCon signoSin signo
8 bits
desbordamiento, truncado
1110 11110xEF-17239
16 bits1011 1110 1110 11110xBEEF-1665748879
32 bits0000 0000 0000 0000 1011 1110 1110 11110x0000BEEF4887948879
64 bits0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1011 1110 1110 11110x000000000000BEEF4887948879

Si el valor está fuera del rango de un ancho, el patrón contiene solo los bits bajos, que es lo que hace una conversión a int8_t/int16_t/int32_t/int64_t en C, Java o Go.

Funciona por completo en tu navegador. Nada de lo que introduces se nos envía ni se guarda. Ver todas las herramientas gratis.

¿Encontraste un problema o algo que podría mejorar? Leemos todos los mensajes y lo arreglamos rápido.

Este conversor de bases numéricas muestra un entero en binario, octal, decimal, hexadecimal, base 32 y base 36 al mismo tiempo, además de la base de 2 a 36 que elijas. Todas las filas son editables: escribe un valor hexadecimal en el campo hexadecimal y el binario, el decimal y el resto se actualizan. Acepta prefijos como 0x y 0b, el signo menos y espacios, comas o guiones bajos entre los dígitos, así que puedes pegar directamente desde código o una hoja de datos. Para convertir muchos valores a la vez, cambia al modo lista, pega un número por línea y obtén una tabla con todas las bases que puedes copiar o descargar en CSV.

Los números se tratan como enteros de precisión arbitraria, así que un ID de 64 bits, un valor hash de 256 bits o un decimal de 300 dígitos se convierten con exactitud, mientras que las herramientas basadas en los números normales de JavaScript redondean sin avisar todo lo que pase de 9 007 199 254 740 991. La tabla de complemento a dos muestra cómo se almacena el valor en enteros de 8, 16, 32 y 64 bits con y sin signo, y señala el desbordamiento. Las fracciones se rechazan con una explicación en lugar de convertirse de forma aproximada: muchas fracciones decimales no tienen una forma binaria exacta.

Cómo usarla

  1. Escribe un número en el campo de la base en la que está escrito, por ejemplo 0xBEEF en Hexadecimal o 1011 en Binario.
  2. Lee las demás bases en los otros campos; copia cualquiera con su botón.
  3. Para una base poco habitual, elígela en el menú Cualquier base y escribe en ese campo.
  4. Consulta la tabla de complemento a dos para ver el patrón de bits con un ancho fijo, o cómo se ve un número negativo en hexadecimal.
  5. Desactiva la agrupación de dígitos si necesitas la cadena sin más para el código.

Preguntas frecuentes

¿Puedo convertir una lista de números a la vez?

Sí. Elige “Lista de números (por lotes)”, pega hasta 2000 números, uno por línea, y elige la base de entrada (o déjala en Auto, que interpreta los prefijos 0x, 0b y 0o). Cada línea se convierte a decimal, binario, octal, hexadecimal, base 32, base 36 y una base adicional que elijas; una línea que no se puede interpretar muestra su propio error y las demás se convierten igualmente. Copia la tabla o descárgala en CSV.

¿Cómo convierto binario a decimal?

Multiplica cada dígito binario por 2 elevado a su posición, contando desde 0 por la derecha, y suma los resultados. Para 1011: 1×8 + 0×4 + 1×2 + 1×1 = 11. O escríbelo en el campo Binario de arriba y lee el campo Decimal.

¿Cómo convierto hexadecimal a decimal?

Cada dígito hexadecimal vale 16 veces el dígito que tiene a su derecha, y de la A a la F representan de 10 a 15. Para 0x2F: 2×16 + 15 = 47. Cada dígito hexadecimal corresponde además a exactamente cuatro dígitos binarios (F = 1111), por eso el hexadecimal se usa como forma compacta de escribir binario.

¿Qué es el complemento a dos?

Es la forma en que los ordenadores almacenan los enteros negativos. En un entero de n bits, un número negativo −x se almacena como 2^n − x. Así, −1 en 8 bits es 11111111 (0xFF), y −128 es 10000000. El mismo patrón de bits se lee como 255 sin signo o −1 con signo; la tabla muestra ambos. La ventaja es que la suma y la resta funcionan igual para valores con y sin signo.

¿Por qué mi conversor da resultados incorrectos con números grandes?

La mayoría de los conversores usan números de JavaScript, que son de coma flotante de 64 bits y solo representan enteros con exactitud hasta 2^53 − 1 (9 007 199 254 740 991). Por encima, los dígitos se redondean sin avisar, así que un ID de base de datos de 64 bits o un ID snowflake de Twitter/X se convierte mal. Este conversor usa BigInt, que no tiene límite de tamaño.

¿Puedo convertir fracciones como 0.1 a binario?

Aquí no, a propósito. 0.1 en decimal es una fracción periódica en binario (0.000110011…), así que cualquier respuesta finita es una aproximación, y ese redondeo es justo la razón por la que 0.1 + 0.2 no da 0.3 en la mayoría de los lenguajes de programación. Esta herramienta convierte enteros con exactitud; para trabajar con fracciones, conviértelas antes en enteros (por ejemplo, guarda céntimos en lugar de dólares).

Dónde aparece cada base

• Binario (base 2): flags de bits, máscaras de red, registros de hardware, campos de bits de permisos.

• Octal (base 8): permisos de archivos en Unix, donde 755 significa rwxr-xr-x porque cada dígito octal son exactamente tres bits (propietario, grupo, otros).

• Hexadecimal (base 16): direcciones de memoria, códigos de color (#244B3F), volcados de bytes, hashes, direcciones MAC y puntos de código Unicode (U+1F332).

• Base 32 (0–9, A–V): identificadores compactos. Ten en cuenta que el Base32 del RFC 4648 que usan los secretos TOTP es una codificación de bytes con el alfabeto A–Z, 2–7, no esta base numérica.

• Base 36 (0–9, A–Z): la representación alfanumérica más compacta que no distingue mayúsculas de minúsculas, usada para ID cortos y acortadores de URL; Number.prototype.toString(36) de JavaScript la genera.

Enteros de ancho fijo y desbordamiento

Los lenguajes de programación almacenan los enteros con anchos fijos: int8/uint8 (un byte), int16, int32 e int64. Un entero con signo de n bits abarca de −2^(n−1) a 2^(n−1) − 1, así que un int8 va de −128 a 127 y un int32 de −2 147 483 648 a 2 147 483 647. La versión sin signo abarca de 0 a 2^n − 1.

Cuando un valor no cabe, la mayoría de los lenguajes conservan solo los n bits más bajos. Por eso 200 almacenado en un int8 se lee como −56, y 2 147 483 647 + 1 en un int de 32 bits se convierte en −2 147 483 648. La tabla de complemento a dos muestra ese patrón truncado y marca la fila como desbordada, lo que facilita predecir qué producirá una conversión de tipo en C, Java, Go o Rust.

Herramientas gratis relacionadas

  • Selector y conversor de colores — Captura cualquier color de cualquier parte de tu pantalla o convierte al instante entre HEX, RGB y HSL.
  • Generador de hash — Calcula el hash de textos o archivos con MD5, SHA-1, SHA-256, SHA-384, SHA-512 y CRC32, verifica una suma de comprobación o calcula un HMAC. Los archivos nunca salen de tu dispositivo.
  • Conversor de timestamp Unix — Convierte segundos, milisegundos, microsegundos o nanosegundos epoch en fechas de cualquier zona horaria, y al revés. Reloj en vivo, modo por lotes y fragmentos de código.
  • Calculadora online — Una calculadora limpia, al estilo del iPhone, que funciona con el teclado y el teclado numérico. Porcentaje, cambio de signo, historial y copiar, sin anuncios y sin instalar nada.