Skip to main content
🔬 Advanced

Hexadecimal Calculator

Suma, resta y convierte números hexadecimales. Realiza aritmética hexadecimal y convierte a decimal o binario. Calculadora matemática gratis con resultados instantáneos.

Comprensión del Hexadecimal (Base-16): Fundamentos

El hexadecimal (hex) es un sistema numérico posicional con base 16. Utiliza dieciséis símbolos distintos: los dígitos 0–9 representan valores cero hasta nueve, y las letras A–F (o a–f) representan valores diez hasta quince. Un dígito hexadecimal representa exactamente cuatro bits binarios (una "nibble"), lo que hace que el hexadecimal sea la forma más natural para representar datos binarios en un formato legible por humanos.

El valor posicional de cada dígito hex es una potencia de 16. Para el número hex 2F4:

Convertir decimal a hex: divida repetidamente por 16 y registre los restos (el dígito más a la derecha primero). 756 ÷ 16 = 47 R 4; 47 ÷ 16 = 2 R 15 (F); 2 ÷ 16 = 0 R 2. Lea los restos hacia arriba: 2F4₁₆ ✓. En la mayoría de los lenguajes de programación, los literales hexadecimales están precedidos por 0x: 0x2F4 = 756.

Hex a Decimal Conversión de Tabla

Referencia rápida para convertir dígitos hexadecimales individuales y valores hexadecimales comunes a decimal:

HexDecimalBinarioSignificado Común
0x0000000 0000Cero byte, falso, apagado
0x0110000 0001Verdadero, habilitado
0x0A100000 1010Caracter de nueva línea (LF)
0x0D130000 1101Retorno de carro (CR)
0x1F310001 1111Separa unidad
0x20320010 0000Caracter de espacio (ASCII)
0x41650100 0001'A' en ASCII
0x61970110 0001'a' en ASCII (minúscula)
0x7F1270111 1111Caracter DEL; máximo par de nibbles signados
0x801281000 0000Bit de signo establecido (negativo en byte signado)
0xFF2551111 1111Máximo valor sin signo de byte; todos los bits establecidos
0x1002561 0000 0000Uno más que el máximo byte
0xFFFF65,53516 unosMáximo valor sin signo de 16 bits
0xFFFFFF16,777,21524 unosMáximo de 24 bits (16M de colores)

La relación entre hexadecimales y binarios es directa: cada dígito hexadecimal se corresponde exactamente con 4 bits. A = 1010, B = 1011, C = 1100, D = 1101, E = 1110, F = 1111. Convertir 0xAB a binario: A=1010, B=1011 → 10101011₂ = 171₁₀.

Aritmética Hexadecimal: Adición, Sustracción, Multiplicación

La aritmética hexadecimal sigue las mismas reglas que la aritmética decimal, pero lleva y coge a 16 en lugar de 10. Entender la aritmética hexadecimal es esencial para el programado en ensamblador, sistemas embebidos y la lectura de la salida del compilador.

Ejemplo de adición: 3A + 27. Unidades: A + 7 = 10 + 7 = 17 = 1×16 + 1 → escribe 1, lleva 1. Decenas: 3 + 2 + 1 (lleva) = 6. Resultado: 61₁₆ = 97₁₀. Verifica: 58 + 39 = 97 ✓.

Ejemplo de sustracción: C3 − 5F. Unidades: 3 < F (15), así que coge: 3 + 16 − 15 = 4, y lleva 1 a la siguiente columna. Decenas: C (12) − 5 − 1 (coge) = 6. Resultado: 64₁₆ = 100₁₀. Verifica: 195 − 95 = 100 ✓.

Ejemplo de multiplicación: 1A × 3. A × 3 = 30 = 1E₁₆ (escribe E, lleva 1). 1 × 3 + 1 = 4. Resultado: 4E₁₆ = 78₁₀. Verifica: 26 × 3 = 78 ✓.

Para cálculos hexadecimales complejos, convertir a decimal, calcular y convertir de vuelta a menudo es más confiable a menos que estés profundamente practicado. Sin embargo, entender la aritmética hexadecimal construye intuición para el diseño de memoria, registros de CPU y representación de datos.

Hex en el Diseño Web: Códigos de Color

Los códigos de color en HTML y CSS son una de las aplicaciones más visibles de hexadecimal fuera del desarrollo de software. Los colores se expresan como #RRGGBB donde cada canal va de 00 (0 intensidad) a FF (255 = intensidad completa). Esto da 256³ = 16,777,216 posibles colores.

Código HexRojoVerdeAzulNombre del Color
#FF000025500Rojo puro
#00FF0002550Verde puro (limón)
#0000FF00255Azul puro
#FFFF002552550Amarillo
#FF00FF2550255Magenta
#00FFFF0255255Cian
#FFFFFF255255255Blanco
#000000000Negro
#808080128128128Negro medio
#FF57332558751Amarillo-orange puro

El CSS también soporta los códigos hexadecimales de 4 dígitos (#RGBA) y 8 dígitos (#RRGGBBAA) donde AA es el canal alfa (00 = transparente, FF = opaco). Los colores de forma corta (#RGB) se expanden repitiendo cada dígito: #F3A = #FF33AA.

Los diseñadores web a menudo ajustan los colores modificando los valores hexadecimales. Sumar a la canal rojo hace que los colores sean más cálidos; restarlos los hace más fríos. Los colores hexadecimales con valores iguales de R, G y B siempre producen tonos de gris. Un color como #7F7F7F es exactamente gris del 50% (127 de 255 en cada canal).

Hex en el Programado: Direcciones de Memoria y Manipulación de Bits

En el programado de sistemas, el hex es el idioma natural para direcciones de memoria, banderas de bits y registros de hardware. Cada programador que trabaja en C, C++, ensamblador o sistemas embebidos encuentra constantemente hex.

Direcciones de memoria: En un sistema de 32 bits, las direcciones van desde 0x00000000 a 0xFFFFFFFF (4 GB). Rango común de direcciones: 0x00000000–0x00FFFFFF (memoria baja), 0x7FFFFFFF (máximo entero positivo de 32 bits), 0x80000000 (inicio del espacio negativo en interpretación como signado), 0xFFFFFFFF (máximo entero no signado de 32 bits). En sistemas de 64 bits, el espacio de usuario típicamente ocupa 0x0000000000000000–0x00007FFFFFFFFFFF.

Manipulación de bits con máscaras hex: Las operaciones bit a bit se expresan naturalmente en hex porque coinciden con las fronteras de los nibbles.

OperaciónExpresiónEfecto
Establecer bit 3x |= 0x08Forzar bit 3 a 1, dejar los demás sin cambio
Limpiar bit 3x &= ~0x08Forzar bit 3 a 0, dejar los demás sin cambio
Alternar bit 3x ^= 0x08Invertir bit 3, dejar los demás sin cambio
Comprobar bit 3(x & 0x08) != 0Probar si bit 3 está establecido
Extraer nibble bajox & 0x0FObtener los 4 bits inferiores
Extraer nibble alto(x >> 4) & 0x0FObtener los 4 bits superiores del byte

Constantes hex famosas: Los programadores han creado constantes memorables para depuración e inicialización: 0xDEADBEEF (usado para marcar memoria no inicializada en sistemas antiguos de IBM), 0xCAFEBABE (número mágico de archivo de clase Java), 0xFEEDFACE (número mágico de formato binario Mach-O), 0x0BADF00D (sentinelas para depuración de memoria), 0xDEADC0DE (usado en la detección de caídas en iOS). Estas constantes aparecen de manera ambigua en volcados hexadecimales, lo que las hace fáciles de identificar durante la depuración.

Signaturas de Formatos de Archivos y Forensia Hexadecimal

Cada formato de archivo tiene una secuencia característica de bytes en su inicio llamada "número mágico" o firma de archivo. Los editores hexadecimales y las herramientas de forensia digital utilizan estas firmas para identificar los tipos de archivo sin importar la extensión del archivo. Conocer las firmas de archivo es esencial para la recuperación de datos, el análisis de malware y la forensia digital.

Tipo de ArchivoSímbolo Hexadecimal (primeros bytes)Representación ASCII
Imagen JPEGFF D8 FFÿØÿ
Imagen PNG89 50 4E 47 0D 0A 1A 0A.PNG....
Documento PDF25 50 44 46%PDF
Archievo ZIP50 4B 03 04PK..
Imagen GIF47 49 46 38GIF8
Ejecutable ELF (Linux)7F 45 4C 46.ELF
Ejecutable PE (Windows)4D 5AMZ
Audio MP3FF FB o 49 44 33ÿû o ID3
Base de Datos SQLite53 51 4C 69 74 65SQLite

Los profesionales de la seguridad utilizan el hexadecimal para examinar archivos binarios sin confiar en la extensión del archivo. Un archivo llamado "document.pdf" que comienza con 4D 5A es en realidad un ejecutable de Windows — una técnica común de malware. El análisis hexadecimal de paquetes de red revela estructuras de protocolo, encabezados de cifrado y posibles exploits.

Comparación de Bases Numéricas: Decimal, Binario, Octal, Hexadecimal

Los computadores usan diferentes bases numéricas para diferentes propósitos. Entender cómo se relacionan ayuda a leer documentación técnica, depurar y programar sistemas.

DecimalBinario (base 2)Hexadecimal (base 16)
0000000
81000108
10101012A
15111117F
160001 00002010
640100 000010040
1281000 000020080
2551111 1111377FF
2561 0000 0000400100
1024100 0000 00002000400

El octal (base 8) era una vez común en la informática (aparece en los permisos de archivos de Unix: chmod 755 = 111 101 101 en binario = rwxr-xr-x). El hexadecimal reemplazó al octal para la mayoría de las aplicaciones porque 4 bits por dígito (hexadecimal) se alinean mejor con las arquitecturas modernas de 8 bits, 16 bits, 32 bits y 64 bits que 3 bits por dígito (octal).

Preguntas Frecuentes

Cómo convierto rápidamente entre hexadecimales y binarios?

Cada dígito hexadecimales corresponde exactamente a 4 bits binarios: 0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000, 9=1001, A=1010, B=1011, C=1100, D=1101, E=1110, F=1111. Para convertir 0xB7: B=1011, 7=0111 → 10110111₂. Para convertir 11001010₂: divide en nibbles: 1100=C, 1010=A → 0xCA.

¿Por qué los colores CSS usan hexadecimal?

CSS usa hex porque cada canal RGB (0-255) encaja perfectamente en exactamente 2 dígitos hexadecimales (00-FF). El formato #RRGGBB es compacto, inambiguo y se corresponde directamente con el modelo de color de 24 bits utilizado por el hardware de visualización. HTML adoptó los colores hexadecimales en la temprana década de 1990 a partir de las definiciones X11 de color, y la convención ha permanecido estándar desde entonces.

¿Qué valor decimal tiene 0xFF?

0xFF = 15×16 + 15 = 240 + 15 = 255. En binario, FF = 1111 1111, lo que significa que todos los 8 bits están establecidos. 255 es el valor máximo de un byte sin signo (uint8), el valor máximo de intensidad para cada canal RGB, y aparece constantemente en la red (255.255.255.255 es la dirección de transmisión) y en la computación.

¿Cuál es la diferencia entre 0x1F y 0xF1?

Estos son números diferentes con los mismos dígitos en diferentes órdenes. 0x1F = 1×16 + 15 = 31 decimal. 0xF1 = 15×16 + 1 = 241 decimal. En binario: 0x1F = 0001 1111; 0xF1 = 1111 0001. El valor posicional importa, de la misma manera que 19 ≠ 91 en decimal.

¿Cuántos dígitos hexadecimales necesito para representar un número de 32 bits?

Exactamente 8 dígitos hexadecimales (ya que 16⁸ = 2³², cubriendo todos los valores de 32 bits desde 0x00000000 hasta 0xFFFFFFFF). Las direcciones de memoria en sistemas de 32 bits se muestran como números hexadecimales de 8 dígitos. Para números de 64 bits, necesitas 16 dígitos hexadecimales (0x0000000000000000 a 0xFFFFFFFFFFFFFFFF).

¿Qué significa el prefijo "0x" en números hexadecimales?

El prefijo "0x" es una convención de notación utilizada en C y la mayoría de los lenguajes de programación para indicar que el número siguiente es hexadecimal. "0x" significa "hex" (el 'x' sugiere hexadecimal). Notaciones alternativas: traza 'h' en ensamblador (FFh), traza '#' en CSS y algunos contextos (#FF0000), y el prefijo $ en algunos lenguajes más antiguos ($FF).

¿Cómo se utiliza el hexadecimales en direcciones IP?

Las direcciones IPv4 (por ejemplo, 192.168.1.1) pueden expresarse en hexadecimales: cada octeto en hexadecimales. 192.168.1.1 = 0xC0 0xA8 0x01 0x01 = 0xC0A80101. Las direcciones IPv6 se escriben ya en hexadecimales: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Esto hace que la manipulación de direcciones IPv6 sea mucho más fácil con aritmética hexadecimales.

¿Qué es un editor hexa y cuándo lo usaría?

Un editor hexa muestra y edita archivos como bytes en hexadecimal. Usos comunes: examinar firmas de formato de archivo para identificar tipos de archivo, editar archivos de guardado binarios de juegos, desensamblar software, analizar capturas de red, recuperar datos de archivos dañados y forensia digital. Editores hexa populares incluyen HxD (Windows), hex fiend (Mac) y xxd (herramienta de línea de comandos Unix).

¿Por qué se utiliza hexadecimal en lugar de decimal en la computación?

Porque los computadores operan en binario (base 2), y 16 = 2⁴ — el hexadecimal se alinea perfectamente con el binario. Un dígito hexadecimales = 4 bits, dos dígitos hexadecimales = 1 byte (8 bits), cuatro dígitos hexadecimales = 16 bits, ocho dígitos hexadecimales = 32 bits. Decimal no tiene tal correspondencia limpia con potencias de 2, lo que hace que el hexadecimal sea mucho más natural para expresar datos binarios de manera compacta.

¿Cómo convierto un color hexadecimal a valores RGB?

Divide el color hexadecimal de 6 dígitos en tres grupos de 2 dígitos: #RRGGBB. Convierte cada uno de ellos a decimal. Ejemplo: #4A90E2 → R=0x4A=74, G=0x90=144, B=0xE2=226. Así que este color es rgb(74, 144, 226) — un azul mediano. Para revertir: convierte cada valor decimal a 2 dígitos hexadecimales y concatena: rgb(255, 87, 51) → #FF5733.

Hexadecimal en Redes y Protocolos

La informática de redes utiliza extensivamente el hexadecimal. Las direcciones MAC —los identificadores de hardware para las interfaces de red— se escriben como 6 bytes hexadecimales separados por puntos o guiones: por ejemplo, 00:1A:2B:3C:4D:5E. Las primeras tres bytes (00:1A:2B) identifican al fabricante (Identificador Único Organizativo, OUI), mientras que las últimas tres (3C:4D:5E) identifican al dispositivo específico.

Las direcciones IPv6 son 128 bits expresados como 8 grupos de 4 dígitos hexadecimales: 2001:0DB8:AC10:FE01:0000:0000:0000:0000. Los ceros iniciales dentro de los grupos pueden omitirse y las secuencias de ceros consecutivos pueden comprimirse con "::", dando 2001:DB8:AC10:FE01::. Entender el hexadecimal es esencial para leer direcciones IPv6, máscaras de subred y tablas de ruteo.

Los marcos Ethernet, paquetes IP, segmentos TCP —todos tienen campos expresados en hexadecimal en herramientas de análisis de red como Wireshark. Un paquete TCP SYN muestra el campo de banderas como 0x002 (solamente el bit SYN establecido); un SYN-ACK muestra 0x012 (los bits SYN y ACK establecidos). Leer estos valores hexadecimales directamente desde las capturas de paquetes es una habilidad fundamental para la resolución de problemas de red.

Unicode y Hex: Codificación de Caracteres

Unicode, el estándar universal de codificación de caracteres, asigna a cada carácter un punto de código expresado en hex. La Plana Básica Multilingüe abarca U+0000 a U+FFFF. Ejemplos:

CarácterPunto de Código Unicode codificación UTF-8 (hex)Descripción
AU+004141Letra mayúscula latina A
αU+03B1CE B1Letra minúscula griega alpha
U+20ACE2 82 ACSímbolo de euro
U+4E2DE4 B8 ADCarácter chino "medio"
😀U+1F600F0 9F 98 80Rostro sonriente emoji
©U+00A9C2 A9Símbolo de copyright

UTF-8 codifica los caracteres ASCII (U+0000 a U+007F) en 1 byte igual al valor ASCII. Los caracteres U+0080 a U+07FF usan 2 bytes, U+0800 a U+FFFF usan 3 bytes, y los caracteres más allá de U+FFFF (como la mayoría de los emojis) usan 4 bytes. Esta codificación de longitud variable, representada en hex, es por qué entender hex ayuda cuando se depuran problemas de codificación de texto en aplicaciones web.