CalcOpenly
Español

Conversor binario, hexadecimal y decimal

Convierte números entre binario, decimal, hexadecimal, octal y cualquier base de 2 a 36, incluidas fracciones, cifras periódicas y complemento a dos para negativos.

Redactado con herramientas de redacción con IAActualizado Ejemplos verificados: 7

Usa un punto para las fracciones. En modo automático, los prefijos 0x, 0b y 0o seleccionan la base. Se ignoran espacios y guiones bajos.
Se aplica a todas las bases excepto la decimal; agrupar el binario de 4 en 4 muestra nibbles, y de 8 en 8, bytes.
Más opciones
Probar
Resultado
-2A
Resultado: -2A
Binario
-10 1010
Octal
-52
Decimal
-42
Fracción en la base de destino
Número entero
Bits en complemento a dos
1111 1111 1101 0110
Complemento a dos en hexadecimal
FFD6
Bits interpretados sin signo
65494
Bits interpretados con signo
-42

-42 en decimal es -2A en hexadecimal. Un registro de 16 bits lo almacena como FFD6 en hexadecimal, que se interpreta como 65494 si los mismos bits se leen sin signo.

Patrón de 16 bits

Complemento a dos de 16 bits
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
Cómo se calcula S
  1. Leer las cifras en decimal

    4210=4×101+2×100=42\texttt{42}_{10} = 4 \times 10^{1} + 2 \times 10^{0} = 42

    El signo menos se conserva sin cambios.

  2. Parte entera: dividir repetidamente entre 16

    42=2×16+10  (A)2=0×16+2  (2)\begin{aligned}42 &= 2 \times 16 + 10 \;(A) \\ 2 &= 0 \times 16 + 2 \;(2)\end{aligned}

    Al leer los restos del último al primero se obtienen las cifras.

  3. Almacenar en 16 bits (complemento a dos)

    −42≡65494=1111 1111 1101 01102(mod216)-42 \equiv 65494 = \texttt{1111\,1111\,1101\,0110}_2 \pmod{2^{16}}

    Sin signo, los bits representan 65494; con signo, el bit superior pesa −2¹⁵, lo que da -42.

Acerca de Conversor binario, hexadecimal y decimal

Un número escrito en base b es una suma de cifras multiplicadas por potencias de b: 2A en hexadecimal es 2 × 16 + 10 = 42. Para escribir un entero en base b, el conversor divide repetidamente entre b y lee los restos del último al primero; para una fracción, multiplica repetidamente por b y toma cada parte entera como siguiente cifra. Trabaja con fracciones exactas, por lo que puede distinguir si las cifras tras el punto terminan o se repiten.

Se usa en programación para direcciones de memoria, códigos de color, permisos de archivos y máscaras de bits. El valor inicial, −42, es −2A en hexadecimal y 1111 1111 1101 0110 en complemento a dos de 16 bits; los mismos bits, interpretados sin signo, representan 65 494. El decimal 0,1 no termina en binario: se escribe 0.0(0011), con el bloque 0011 periódico.

El complemento a dos se muestra para enteros con anchuras de 8 a 128 bits. Si el valor supera la anchura elegida, se conservan sus bits de menor peso y se muestra una advertencia.

Convertir números binarios, decimales y hexadecimales

Introduce Número, selecciona Base de origen y elige Base de destino. El conversor admite binario, octal, decimal, hexadecimal y bases enteras personalizadas de 2 a 36. El ejemplo inicial convierte −42 decimal en −2A hexadecimal y muestra por separado el patrón de complemento a dos de dieciséis bits 1111 1111 1101 0110. El valor matemático y su almacenamiento son representaciones relacionadas.

Para pasar de decimal a binario, selecciona Decimal (10) y Binario (2). Para el recorrido inverso, intercambia esas bases. Hexadecimal utiliza 0–9 y A–F: A representa diez y F, quince. Cada dígito hexadecimal corresponde a cuatro bits, lo que permite escribir de forma compacta bytes y patrones binarios.

Elegir la base antes de interpretar los dígitos

La opción automática reconoce los prefijos 0b, 0o y 0x para binario, octal y hexadecimal. Sin prefijo, interpreta decimal. Por eso 101010 en modo automático es el entero decimal ciento un mil diez. Para representar cuarenta y dos, selecciona Binario (2) o escribe 0b101010.

Se ignoran espacios y guiones bajos, de modo que puedes introducir 1111 1111 con la base binaria seleccionada. El signo menos representa un valor negativo ordinario. El punto introduce la fracción de la base elegida: 0x1.8 = 1 + 8/16 = 1,5 decimal. El campo interpreta un numeral posicional, no una expresión aritmética general.

Elige la opción de otra base para mostrar los campos personalizados y escribe un entero entre dos y treinta y seis. Por encima de diez, las letras aportan dígitos adicionales hasta Z, que representa treinta y cinco. ZZ en base 36 = 35 × 36 + 35 = 1295. Un dígito incompatible, como 2 en binario o G en hexadecimal, produce un error.

Tabla de binario, octal y hexadecimal

Las filas utilizan representaciones enteras sin agrupación. Añadir ceros a la izquierda puede servir para una presentación de almacenamiento de anchura fija, sin cambiar el valor positivo de esas filas. Conserva la base de cada columna al leer sus dígitos.

DecimalBinarioOctalHexadecimal
0000
1111
21022
711177
81000108
10101012A
15111117F
16100002010
3111111371F
42101010522A
64100000010040
12711111111777F
1281000000020080
25511111111377FF
256100000000400100
1024100000000002000400

En binario, 101010 = 32 + 8 + 2 = 42. En hexadecimal, 2A = 2 × 16 + 10 = 42. Para el otro sentido puede utilizarse división repetida: 255 entre dieciséis da cociente quince y resto quince; ambos dígitos corresponden a F. Cambia la notación, mientras se conserva el número representado.

Fracciones terminantes y periódicas

Las posiciones fraccionarias utilizan potencias negativas de la base. El binario 1.1 representa 1 + 1/2 = 1,5. El hexadecimal 1.8 también representa 1,5 porque su dígito fraccionario tiene peso 1/16. La aritmética racional permite identificar si la expansión termina o contiene un periodo que se repite.

El decimal 0.1 representa un décimo. En binario, su forma exacta es 0.0(0011): los paréntesis marcan el bloque periódico. Con doce dígitos fraccionarios visibles y sin agrupación, la salida ordinaria es 0.000110011001…. Ese prefijo se trunca. La forma exacta identifica la repetición y la longitud del periodo es cuatro.

El control avanzado de dígitos fraccionarios admite de uno a doscientos. Las opciones de agrupación son ninguna, grupos de cuatro o grupos de ocho. Modifican los espacios de las presentaciones no decimales, no el valor. La base de destino aparece como resultado principal y se omite su fila duplicada entre las salidas secundarias.

Leer los bits con signo y sin signo

Para enteros, elige una anchura de complemento a dos de 8, 16, 32, 64 o 128 bits. El patrón almacenado corresponde al número módulo dos elevado a esa anchura. Con dieciséis bits, −42 tiene valor de patrón sin signo 65494, hexadecimal FFD6. Interpretar los mismos bits con signo recupera −42.

En ocho bits, la interpretación con signo abarca −128 a 127 y la interpretación sin signo, 0 a 255. El decimal 128 tiene patrón 10000000, que se lee como −128 al utilizar signo. Una cantidad que exceda los bits retenidos se reduce a sus bits inferiores en esta presentación de almacenamiento. Eso no convierte el número matemático original en el valor reducido.

Revisa ambas lecturas cuando compruebes un registro o formato de datos. Las salidas de complemento a dos se omiten para fracciones porque este control modela bits enteros, no una codificación de coma flotante o de punto fijo. Elegir anchura tampoco establece el orden de bytes. Para máscaras y operadores, utiliza la calculadora de bits; para bytes de texto, el codificador de texto.

El punto de una entrada fraccionaria pertenece a la sintaxis de este conversor, aunque la interfaz esté en español. Conserva prefijo, base y signo al compartir un ejemplo. Restablecer recupera el entero negativo de dieciséis bits. Si aparecen errores de dígitos o límites de controles personalizados, corrige esos campos antes de interpretar cualquier resultado.

Ejemplos resueltos

255 a hexadecimal

Número
255
Base de origen
Decimal (10)
Base de destino
Hexadecimal (16)
Anchura del complemento a dos
16 bits
Agrupación de dígitos
Grupos de 4
Resultado
FF
Binario
1111 1111
Octal
377
Fracción en la base de destino
Número entero

Fuente de comprobación: Cálculo independiente

−42 en complemento a dos de 16 bits

Número
-42
Base de origen
Decimal (10)
Base de destino
Hexadecimal (16)
Anchura del complemento a dos
16 bits
Agrupación de dígitos
Grupos de 4
Resultado
-2A
Bits en complemento a dos
1111 1111 1101 0110
Complemento a dos en hexadecimal
FFD6
Bits interpretados sin signo
65494
Bits interpretados con signo
-42

Fuente de comprobación: Cálculo independiente

El decimal 0,1 es periódico en binario

Número
0.1
Base de origen
Decimal (10)
Base de destino
Binaria (2)
Anchura del complemento a dos
16 bits
Agrupación de dígitos
Ninguna
Cifras fraccionarias que mostrar
12
Resultado
0.000110011001…
Forma exacta
0.0(0011)
Fracción en la base de destino
Periódico
Longitud del período
4

Fuente de comprobación: un script independiente de división larga encuentra el ciclo de restos de longitud 4 que empieza tras la primera cifra

Fracción hexadecimal 0x1.8

Número
0x1.8
Base de origen
Automática (según el prefijo; decimal si no hay)
Base de destino
Decimal (10)
Anchura del complemento a dos
16 bits
Agrupación de dígitos
Grupos de 4
Resultado
1.5
Fracción en la base de destino
Finito
Binario
1.1

Fuente de comprobación: Cálculo independiente

Preguntas

¿Cómo se convierte de binario a decimal?

Multiplica cada cifra binaria por 2 elevado a su posición, contando desde 0 a la derecha, y suma los resultados. 1111 1111 es 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, y 101010 es 32 + 8 + 2 = 42. Las cifras tras el punto binario usan potencias negativas: 1.1 es 1 + 1/2 = 1,5.

¿Cómo se convierte de decimal a hexadecimal?

Divide repetidamente entre 16 y escribe los restos del último al primero, usando A–F para 10–15. Para 255, 255 ÷ 16 = 15 con resto 15, y después 15 ÷ 16 = 0 con resto 15: el resultado es FF. Para 1295, los restos 15, 0 y 5 dan 50F. Cada cifra hexadecimal representa exactamente 4 bits, por eso se usa para escribir bytes: FF es 1111 1111.

¿Qué es el complemento a dos?

El complemento a dos es la forma en que las CPU almacenan enteros con signo: un negativo −x en w bits se guarda como 2^w − x, de modo que el bit superior tiene peso −2^(w−1). En 16 bits, −42 es 65 536 − 42 = 65 494, o FFD6 en hexadecimal. Un valor de 8 bits va de −128 a 127, así que 128 se interpreta como −128. C23 (ISO/IEC 9899:2024) exige complemento a dos para enteros con signo.

¿Por qué 0,1 no es exacto en binario?

Una fracción termina en base b solo si su denominador irreducible no contiene factores primos distintos de los de b. 0,1 es 1/10, y 10 = 2 × 5, por lo que en binario se repite indefinidamente: 0.000110011…, escrito 0.0(0011). Por eso 0.1 + 0.2 da 0.30000000000000004 en doble precisión IEEE 754, la representación de los números de JavaScript y de los float de Python.

¿Para qué se usa el octal?

El octal (base 8) agrupa las cifras binarias de tres en tres. Su uso principal actual son los permisos de archivos Unix: cada cifra suma lectura (4), escritura (2) y ejecución (1) para propietario, grupo y otros. Así, chmod 755 significa rwxr-xr-x. El decimal 255 es 377 en octal. Python 3 y JavaScript escriben los literales octales como 0o755; C usa un cero inicial, 0755.

Acerca de esta calculadora

(dk−1⋯d1d0.d−1d−2⋯ )b=∑idi bi(−x) mod 2w=(2w−x) mod 2w\begin{aligned} (d_{k-1}\cdots d_1 d_0.d_{-1}d_{-2}\cdots)_b &= \sum_i d_i\, b^{i} \\ (-x) \bmod 2^w &= (2^w - x) \bmod 2^w\end{aligned}

Fuentes

  1. Knuth, The Art of Computer Programming, Vol. 2, §4.1 Positional number systems and §4.4 Radix conversion
  2. ISO/IEC 9899:2024 (C23) §6.2.6.2 — signed integers use two's complement (draft N3096)

Verificado con las referencias

Esta calculadora incluye 7 ejemplos resueltos con respuestas de fuentes independientes. Forman parte del conjunto de pruebas y también puedes ejecutarlos aquí.

Pon esta calculadora en tu sitio

Pega esto donde quieras que aparezca la calculadora. Su uso es gratuito, se mantiene al día con las correcciones que hacemos aquí y el crédito que aparece debajo enlaza con la versión completa, para que tus lectores puedan consultarla.

Altura
Vista previa de la inserción

Conserva el crédito. Es la única condición y es lo que mantiene gratuitas estas calculadoras.