Saltar al contenido principal
CalcMax

Conversor de hexadecimal a binario

Resultado

10101000111111

Binario

Agrupado de cuatro en cuatro
0010 1010 0011 1111

Este conversor de hexadecimal a binario reescribe en base dos un número escrito en base dieciséis, y de todas las conversiones de este sitio es la única que no necesita ninguna aritmética. Un dígito hexadecimal son exactamente cuatro dígitos binarios —eso no es una casualidad de ningún número concreto, es la razón de que exista el sistema hexadecimal—, así que cada carácter se sustituye por su nibble, sus cuatro bits, y no se lleva nada de uno al siguiente. La 2 se convierte en 0010, la A en 1010, la 3 en 0011 y la F en 1111, así que 2A3F pasa a ser 10101000111111. La tabla de sustitución tiene dieciséis entradas y no crece nunca: el 0 es 0000, el 1 es 0001, y la serie cuenta hacia arriba en binario hasta la F, que es 1111. Cada carácter vale cuatro dígitos binarios sea cual sea su posición, al contrario que en decimal, donde el peso de un dígito depende de dónde se siente. Hay un detalle en el que es fácil tropezar. Los dígitos de la respuesta se imprimen dos veces, una como una tira seguida y otra cortada en grupos de cuatro, y la línea agrupada es más larga porque su primer grupo se ha rellenado con ceros a la izquierda. 2A3F mide catorce bits, así que su forma agrupada es 0010 1010 0011 1111: dieciséis caracteres, con tres ceros añadidos delante. Esos ceros no cambian el valor; están para que la frontera entre el segundo grupo y el tercero se vea en lugar de tener que contarla. La entrada en minúsculas se acepta y se normaliza: 2a3f y 2A3F son el mismo número y producen la misma respuesta, lo cual importa porque las cadenas hexadecimales que uno se encuentra por ahí —valores de color, hashes, identificadores— suelen estar escritas en minúsculas.

Cada carácter de 2A3F expandido en sus cuatro dígitos binarios

Dígito hexadecimalNibbleDecimal
200102
A101010
300113
F111115

Cuatro filas, una por carácter, y ese es el método entero: no hay una quinta fila que añadir ni un acarreo que explicar. La tercera columna es el carácter leído como número, que es el valor al que suman los cuatro bits de la segunda columna: A es diez porque 1010 es 8 + 2, y F es quince porque 1111 es 8 + 4 + 2 + 1. Leer la segunda columna de arriba abajo y unirla da la respuesta binaria, y leer la tercera es lo que habría que hacer en su lugar si la pregunta hubiera pedido el decimal. La primera fila es la que hay que mirar para la regla del relleno: el 2 es 0010, con un cero delante que el número no necesita, y ese cero está ahí para que esta fila mida cuatro caracteres como las otras tres. La tabla está fijada en 2A3F mientras el panel de arriba convierte lo que hayas tecleado.

Fórmula

2A3F ⇒ 2 → 0010, A → 1010, 3 → 0011, F → 1111 ⇒ 10101000111111, agrupado como 0010 1010 0011 1111

2A3F
El número hexadecimal que hay que convertir. Las letras no distinguen mayúsculas, así que 2a3f y 2A3F son el mismo valor; la respuesta se imprime siempre en mayúsculas, que es la convención de este sitio para la notación binaria y la hexadecimal
un carácter
La unidad con la que trabaja esta conversión. Cada carácter se trata por su cuenta y no se lleva nada de uno al siguiente, y por eso pasar de hexadecimal a binario se puede hacer de izquierda a derecha, en cualquier orden, sin mantener ningún total acumulado
4 bits
En cuántos dígitos binarios se expande cada carácter, sin excepción. Dieciséis caracteres posibles y dieciséis patrones de cuatro bits posibles son toda la razón de que las dos bases se emparejen, y eso significa que la longitud de la respuesta binaria es siempre exactamente cuatro veces el número de caracteres
0000 — 1111
El conjunto completo que puede producir cada carácter, contando en binario de 0 a 15. Esta es la tabla de sustitución escrita entera: el 0 es 0000, el 1 es 0001, y la cuenta sigue hasta el 9 como 1001 y luego de la A a la F como 1010 hasta 1111
⇒ 10101000111111
Los dígitos unidos sin nada entre ellos. Esta es la forma binaria propia del número, y no va rellenada: los ceros a la izquierda se caen, así que un valor cuyos bits de arriba son cero sale más corto que cuatro veces sus caracteres
0010 1010 0011 1111
Los mismos dígitos cortados en cuatros, y esta sí va rellenada: el primer grupo es 0010 en lugar de 10, con tres ceros añadidos delante para que todos los grupos midan cuatro caracteres y las fronteras coincidan con los caracteres hexadecimales
2⁵³ − 1
El techo de la entrada, que aquí llega con una forma poco familiar: catorce caracteres hexadecimales, que es 1FFFFFFFFFFFFF, que son cincuenta y tres dígitos binarios, que es 9.007.199.254.740.991 en decimal. Una entrada más larga se rechaza en lugar de convertirse

El hexadecimal es lo que la gente escribe y el binario es lo que ejecutan las máquinas, así que moverse entre los dos es un paso diario para quien trabaja cerca del hardware. Un código de color como 2A3F son cuatro caracteres hexadecimales, y leer qué bits tiene activos —que es lo que de verdad pregunta una máscara de bits, una bandera de permisos o un ajuste de registro— obliga a verlo en binario. Los hashes, las sumas de verificación y las banderas de bits impresas en hexadecimal se leen igual, y también las direcciones de un depurador o las banderas de una captura de paquetes. La conversión merece la pena en la dirección contraria, que es la razón de que sea otra página: el binario es ilegible pasados unos pocos dígitos, así que un valor encontrado en binario se suele apuntar en hexadecimal antes de pasarlo a alguien. En un curso la tarea aparece como convierte de hexadecimal a binario, y no hay ningún desarrollo que mostrar más allá de una sustitución, pero el relleno sí merece la pena escribirlo, porque una respuesta como 10101000111111 y una respuesta como 0010 1010 0011 1111 son el mismo número con distinta cantidad de estructura visible, y cuál de las dos se quiere depende de si el lector necesita el valor o la disposición de los bytes.

Ejemplos resueltos

  1. Convertir 2A3F

    1. Toma los caracteres de uno en uno: 2, A, 3, F
    2. Sustituye cada uno por sus cuatro bits: 2 es 0010, A es 1010, 3 es 0011, F es 1111
    3. Une los cuatro grupos sin nada entre ellos: 10101000111111
    4. Corta los mismos dígitos en cuatros y rellena el primer grupo: 0010 1010 0011 1111

    El valor por defecto, y el ejemplo que muestra el relleno. Las dos líneas de salida tienen longitudes distintas —catorce dígitos frente a dieciséis contando los tres espacios— y eso es lo esperado: la primera línea es el número, la segunda es el número con sus fronteras de carácter a la vista. Conviene notar también que la A y la F se sustituyen, no se convierten: en ninguno de estos pasos hay aritmética.

  2. Un byte, B2

    1. B es 11, que en cuatro bits es 1011
    2. 2 es 0010 en cuatro bits
    3. Únelos: 10110010 — ocho dígitos, dos grupos, un byte

    Dos caracteres hexadecimales son siempre ocho bits, que es un byte, y esa es la razón de que merezca la pena saberse el emparejamiento: la anchura de un valor se lee directamente sin contar nada. Las fronteras de grupo caen además aquí sobre el byte de una manera útil, lo cual es una propiedad de tener dos caracteres y no de este valor concreto.

  3. Entrada en minúsculas, 2a3f

    1. La a minúscula cuenta igual que la A mayúscula: las dos son once
    2. La f minúscula cuenta igual que la F mayúscula: las dos son quince
    3. La conversión se hace exactamente como con 2A3F y da la misma respuesta

    Las dos salidas salen palabra por palabra idénticas a las del primer ejemplo. Las cadenas hexadecimales copiadas de una página web, de una hoja de estilos o de un registro suelen estar en minúsculas, así que aceptar cualquiera de las dos formas no es una comodidad: rechazar la minúscula dejaría la página inservible precisamente con las entradas que la gente trae.

  4. La entrada más grande, 1FFFFFFFFFFFFF

    1. Catorce caracteres, así que la respuesta son cincuenta y seis bits una vez rellenado el primer grupo
    2. El 1 de delante es 0001 dentro de un grupo de cuatro, y ahí es donde se ve el relleno
    3. Los trece caracteres F son cada uno 1111, así que la respuesta rellenada son cincuenta y tres unos precedidos de tres ceros
    4. Sin relleno, el número en sí son cincuenta y tres unos

    El techo, y el caso más claro de la regla del relleno: el primer grupo es 0001 en lugar de 1, así que la línea agrupada tiene tres ceros delante que la línea sin agrupar no tiene. Ese mismo límite aparece en las páginas decimales como 9.007.199.254.740.991 y en las de lectura como cincuenta y tres dígitos: es una sola frontera escrita en tres bases.

Limitaciones

Esta página convierte solo números enteros, y la entrada es una cadena hexadecimal y no una decimal, así que no hay ningún punto decimal que rechazar: lo que se rechaza son los caracteres que no estén entre el 0 y el 9 y entre la A y la F. La entrada puede tener como máximo catorce caracteres hexadecimales, que es 1FFFFFFFFFFFFF, y una cadena más larga se rechaza con un mensaje en lugar de truncarse: una respuesta truncada parecería una respuesta. Los ceros a la izquierda se aceptan y no cambian nada; un signo menos delante se acepta, y ahí el relleno se aplica a los dígitos antes de colocar el signo, así que la línea agrupada se lee menos 0010 y no menos 1010 con un signo en medio. La respuesta se imprime siempre en mayúsculas sin importar cómo se haya escrito la entrada. La tabla de abajo expande el valor por defecto 2A3F y no sigue lo que hayas tecleado. El sentido contrario, de binario a hexadecimal, es otra página, y esta no hace ninguna aritmética sobre el resultado.

Preguntas frecuentes

¿Por qué un dígito hexadecimal son siempre cuatro bits?
Porque tanto el cuatro como el dieciséis son potencias de dos, y dieciséis es cuatro doses multiplicados entre sí. Cuatro dígitos binarios se pueden combinar de dos a la cuarta, que es dieciséis, maneras distintas: exactamente el número de caracteres que la base dieciséis tiene que ofrecer. Así que los dos conjuntos encajan perfectamente: cada carácter tiene un patrón de cuatro bits y cada patrón de cuatro bits tiene un carácter, sin que sobre nada por ninguno de los dos lados. Esa es la razón de que se use el hexadecimal y no, por ejemplo, la base diez, que no se divide en bits de forma exacta.
¿Por qué la respuesta agrupada es más larga que la que no lo está?
Porque la línea agrupada va rellenada y la otra no. La línea sin agrupar es la forma binaria propia del número, así que se le caen los ceros de la izquierda; la línea agrupada tiene que ser un número entero de grupos de cuatro bits, así que completa el grupo de arriba con ceros. Para 2A3F eso son tres ceros de más delante: catorce dígitos en una línea, dieciséis en la otra. Ninguna de las dos está mal, y son el mismo valor. Si necesitas el valor, usa la primera; si necesitas ver dónde caen los caracteres, usa la segunda.
¿Cómo paso de hexadecimal a binario a mano?
Sustituye cada carácter por sus cuatro bits y únelos, trabajando de izquierda a derecha. Los cuatro bits de las diez cifras son la cuenta en binario —el 0 es 0000, el 1 es 0001, el 2 es 0010, hasta el 9 que es 1001— y luego la A es 1010, la B es 1011, la C es 1100, la D es 1101, la E es 1110 y la F es 1111. No hay nada que llevar ni ningún total acumulado que mantener, así que los caracteres se pueden hacer en cualquier orden.
¿Importa si escribo las letras en mayúscula o en minúscula?
No. 2a3f y 2A3F son el mismo número y los dos se convierten en 10101000111111. La respuesta se imprime siempre en mayúsculas, que es la convención habitual para las dos bases en los textos técnicos. Merece la pena aceptar la minúscula porque la mayoría de las cadenas hexadecimales que la gente copia —un valor de color de una hoja de estilos, un hash, un identificador de un registro— están escritas así.
¿Cuál es el número hexadecimal más grande que puedo convertir aquí?
Catorce caracteres: 1FFFFFFFFFFFFF es el techo, y se convierte en cincuenta y tres unos. Las cadenas más largas se rechazan con un mensaje en lugar de acortarse, y el límite no es propio de esta página: es la misma frontera que las páginas decimales expresan como 9.007.199.254.740.991 y las de lectura como cincuenta y tres dígitos. Con un valor más ancho una máquina ya no puede mantener separados los enteros vecinos, así que una respuesta que lo superara no sería fiable.
¿Es lo mismo convertir hexadecimal a binario que hexadecimal a decimal?
No, aunque es fácil confundirlos porque los dos parten de la misma cadena. Convertir a binario es una sustitución: cada carácter se convierte en cuatro bits y no ocurre ninguna aritmética. Convertir a decimal es una suma: cada carácter se multiplica por la potencia de dieciséis que vale su posición —2A3F es 2×4096 + 10×256 + 3×16 + 15— y los términos se suman. La página binaria es más rápida porque la base es potencia de dos y la decimal no.

Referencias

Calculadoras relacionadas