Sistema binario, hexadecimal y unidades de datos explicados
Un glosario práctico del sistema binario, hexadecimal y convenciones de unidades de datos usadas en programación, redes y análisis forense.
Cada byte que inspecciones en un editor hex, cada máscara de subred que calcules, cada tamaño de archivo que reporte una herramienta depende de un pequeño conjunto de sistemas numéricos y convenciones de unidades. Si los usas mal, malinterpretarás un tamaño de buffer, malinterpretarás un volcado de memoria o te discutirás con un compañero sobre si 1 KB es 1000 o 1024 bytes.
Binary: el sistema base que toda computadora realmente usa
Binary es base 2 — solo 0 y 1. Un único dígito binario es un bit. Agrupa 8 bits y obtienes un byte, que puede representar 256 valores distintos (0 a 255 sin signo, o -128 a 127 con signo en complemento a dos).
Cuando ves 01001000 son 72 en decimal, que resulta ser el código ASCII para 'H'. Convertir a mano es solo sumar potencias de 2 desde el bit más a la derecha: 2^6 + 2^3 = 64 + 8 = 72. Herramientas como python3 -c "print(bin(72))" o xxd en un archivo lo hacen al instante, pero entender las matemáticas importa cuando estás haciendo ingeniería inversa de una máscara de bits o calculando valores de flag en un encabezado TCP.
Hexadecimal: la abreviatura del binary
Hex es base 16, usando 0-9 y A-F. Existe porque binary es ilegible a escala y decimal no se mapea de forma limpia a límites de byte. Un dígito hex representa exactamente 4 bits, así que dos dígitos hex representan un byte completo — 0x00 a 0xFF cubre los 256 valores de byte sin espacio desperdiciado.
Este es el motivo por el cual los volcados hex son el estándar en herramientas como xxd, hexdump -C, o la vista de memoria de un disassembler. Cuando ves 0x4D 0x5A al inicio de un archivo, ese es el encabezado MZ que identifica un ejecutable Windows PE. Las direcciones de memoria, códigos de color (#FF5733), direcciones MAC y direcciones IPv6 se escriben convencionalmente en hex porque se mapean de forma tan limpia a la estructura subyacente de byte y nibble.
Convertir hex a decimal: 0x4D = (4 × 16) + 13 = 77. En Python, int('4D', 16) te lleva ahí sin math a mano, y hex(77) va al revés.
Dónde binary, decimal y hex se encuentran realmente en la práctica
Las direcciones IP son un buen ejemplo de los tres colisionando. Una dirección IPv4 como 192.168.1.1 son realmente cuatro bytes: 11000000.10101000.00000001.00000001 en binary, o C0.A8.01.01 en hex. Las matemáticas de subredes — determinar si dos direcciones están en la misma red — son fundamentalmente operaciones AND en binary contra una máscara de subred, aunque escribamos todo en notación decimal con puntos por conveniencia.
En análisis forense digital y análisis de malware, constantemente estás traduciendo entre estas representaciones. Un disassembler muestra opcodes en hex, pero la CPU ejecuta binary puro, y los valores de registro a menudo se interpretan como offsets decimales o cadenas ASCII según el contexto. Saber que 0x41 es tanto el número 65 como el carácter ASCII 'A' es el tipo de reconocimiento de patrones que acelera considerablemente el análisis manual.
Unidades de datos: el problema de 1000 vs 1024
Aquí es donde la gente realmente se equivoca. Fabricantes de almacenamiento, sistemas de archivos y sistemas operativos no siempre se ponen de acuerdo en lo que es un
Escrito con asistencia de IA, revisado y publicado por Michal Pilch (CISSP), Korra Studio.
Esta es una nota de la base de conocimiento de Korra Studio — la plataforma combina cada tema con mentoría 1 a 1.
Empezar gratisarrow_forward