Hexadecimal
O sistema hexadecimal é uma notação de base 16 que usa os símbolos 0–9 e A–F para representar números e bytes.
Definição
O sistema hexadecimal, ou hex, é um sistema de numeração posicional de base 16. Utiliza 0 a 9 e A a F; A equivale a 10 decimal e F a 15.
É útil para apresentar dados binários porque um algarismo hexadecimal corresponde exatamente a 4 bits e dois algarismos representam um byte entre 00 e FF.
Como funciona
Tal como no sistema decimal, cada posição tem um peso, mas usam-se potências de 16. Assim, 2F significa 2 × 16 + 15, ou 47 em decimal. Maiúsculas e minúsculas têm normalmente o mesmo valor.
Os programas costumam prefixar números hexadecimais com 0x; sequências de bytes podem conter espaços ou dois-pontos. São convenções de formato, não algarismos hexadecimais.
Exemplo prático
O texto UTF-8 Hi é composto pelos bytes hexadecimais 48 69. Converter os pares em bytes e interpretá-los como UTF-8 recupera Hi. Os mesmos bytes são SGk= em Base64.
Hex usa dois caracteres de texto por byte, sendo fácil de inspecionar mas ocupando cerca do dobro dos dados brutos.
Interpretação e erros frequentes
Uma cadeia hex não indica se os bytes representam texto, número, ficheiro, hash ou texto cifrado. Para obter texto também é necessária a codificação de caracteres correta. Ao descodificar bytes, uma quantidade ímpar de algarismos fica incompleta, salvo se uma convenção acrescentar um zero inicial.
A notação hexadecimal é reversível e não oferece confidencialidade: não é criptografia.
Não. Só muda a representação escrita de números ou bytes. Qualquer pessoa pode reconverter um valor hex válido sem chave.
Um byte escreve-se normalmente com dois algarismos hex. Numa cadeia ímpar fica meio byte sem par, embora um número hexadecimal comum possa ter qualquer quantidade de algarismos.
Não. A–F e a–f têm normalmente os mesmos valores, embora um formato de saída possa impor uma grafia.