Binary, Hex e Unidades de Dados Explicados
Um glossário prático de sistemas numéricos e convenções de unidades de dados usadas em programação, redes e trabalho forense.
Cada byte que você inspeciona em um editor hex, cada máscara de sub-rede que você calcula, cada tamanho de arquivo que uma ferramenta relata depende de um pequeno conjunto de sistemas numéricos e convenções de unidades. Se errar nisso, você vai avaliar mal o tamanho de um buffer, ler errado um dump de memória ou discutir com um colega sobre se 1 KB é 1000 ou 1024 bytes.
Binário: a base que todo computador realmente fala
Binário é base 2 — apenas 0 e 1. Um único dígito binário é um bit. Agrupe 8 bits juntos e você tem um byte, que pode representar 256 valores distintos (0 a 255 sem sinal, ou -128 a 127 com sinal em complemento de dois).
Quando você vê 01001000, isso é 72 em decimal, que acontece ser o código ASCII para 'H'. Converter à mão é apenas somar potências de 2 começando do bit mais à direita: 2^6 + 2^3 = 64 + 8 = 72. Ferramentas como python3 -c "print(bin(72))" ou xxd em um arquivo fazem isso instantaneamente, mas entender a matemática é importante quando você está fazendo engenharia reversa de uma máscara de bits ou descobrindo valores de flags em um cabeçalho TCP.
Hexadecimal: a abreviação de binário
Hex é base 16, usando 0-9 e A-F. Existe porque binário é ilegível em escala e decimal não mapeia limpo para limites de bytes. Um dígito hex representa exatamente 4 bits, então dois dígitos hex representam um byte completo — 0x00 a 0xFF cobre todos os 256 valores de byte sem espaço desperdiçado.
Por isso dumps hex são o padrão em ferramentas como xxd, hexdump -C ou a visualização de memória de um disassembler. Quando você vê 0x4D 0x5A no início de um arquivo, esse é o cabeçalho MZ que identifica um executável Windows PE. Endereços de memória, códigos de cor (#FF5733), endereços MAC e endereços IPv6 são todos convencionalmente escritos em hex porque mapeia tão bem para a estrutura subjacente de byte e nibble.
Convertendo hex para decimal: 0x4D = (4 × 16) + 13 = 77. Em Python, int('4D', 16) leva você lá sem cálculo manual, e hex(77) vai na outra direção.
Onde binário, decimal e hex realmente se encontram na prática
Endereços IP são um bom exemplo dos três colidindo. Um endereço IPv4 como 192.168.1.1 é realmente quatro bytes: 11000000.10101000.00000001.00000001 em binário, ou C0.A8.01.01 em hex. A matemática de subnetting — descobrir se dois endereços estão na mesma rede — é fundamentalmente operações AND binárias contra uma máscara de sub-rede, mesmo que escrevamos tudo em decimal com ponto para conveniência.
Em forense digital e análise de malware, você está constantemente traduzindo entre essas representações. Um disassembler mostra opcodes em hex, mas a CPU executa binário bruto, e valores de registro frequentemente são interpretados como offsets decimais ou strings ASCII dependendo do contexto. Saber que 0x41 é tanto o número 65 quanto o caractere ASCII 'A' é o tipo de reconhecimento de padrão que acelera consideravelmente a análise manual.
Unidades de dados: o problema 1000 vs 1024
Aqui é onde as pessoas realmente são prejudicadas. Fabricantes de armazenamento, filesystems e sistemas operacionais nem sempre concordam sobre o que é um
Escrito com assistência de IA, revisado e publicado por Michal Pilch (CISSP), Korra Studio.
Esta é uma anotação da base de conhecimento da Korra Studio — a plataforma associa cada tema com mentoria 1-para-1.
Começar gratuitamentearrow_forward