Decimal para hexadecimal: a taquigrafia que o programador realmente lê
O que esta conversão faz
Escreve um número de base 10 na base 16, com os dezesseis dígitos de 0 a 9 e de A a F. O hexadecimal não é outro tipo de número, apenas uma forma mais curta de escrever os mesmos bits: um dígito hexadecimal cobre exatamente quatro dígitos binários, então um valor de 32 bits ocupa oito caracteres em vez de trinta e dois. Essa compressão é toda a razão de a notação sobreviver.
Por que as letras A a F existem
A base 16 precisa de dezesseis símbolos de dígito, e só dez estão em uso corrente, então as seis primeiras letras do alfabeto preenchem a lacuna: A vale dez, B vale onze, e assim por diante até F valendo quinze. As letras são dígitos, não abreviações, e é por isso que FF significa quinze vezes 16 mais quinze, ou seja, 255, e não tem nada a ver com a palavra "quinze".
Tabela de conversão de decimal para hexadecimal
Os valores decimais que aparecem o tempo todo em trabalho com cores, endereçamento e máscaras, com suas formas hexadecimais. Valores como 255 e 65535 marcam as fronteiras de campos de um e de dois bytes.
| Decimal | Hexadecimal |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 7 | 7 |
| 8 | 8 |
| 10 | A |
| 15 | F |
| 16 | 10 |
| 31 | 1F |
| 64 | 40 |
| 100 | 64 |
| 127 | 7F |
| 200 | C8 |
| 255 | FF |
| 1000 | 3E8 |
Códigos de cor e endereços de memória
Uma cor da web como #1E90FF são três bytes — vermelho, verde e azul — escritos como seis dígitos hexadecimais, e cada par é um canal de 0 a 255. A mesma notação aparece em endereços de memória, onde 0x7FFE é muito mais fácil de comparar de relance do que sua forma decimal. Nos dois casos o hexadecimal vence porque seus dígitos se alinham com as fronteiras de byte: dois dígitos, um byte, sempre.
Maiúsculas ou minúsculas
Esta ferramenta imprime em maiúsculas, seguindo a convenção de listagens em C, manuais de hardware e a maior parte da documentação. Minúsculas são igualmente válidas e aparecem em URLs e em alguns literais de linguagem, e o campo de entrada aceita as duas formas. Misturar as duas dentro de um mesmo valor é permitido, mas fica ruim de ler: escolha uma e mantenha.
Perguntas frequentes
Como converter decimal em hexadecimal sem calculadora?
Divida por 16, anote o resto como um dígito hexadecimal e repita com o quociente até ele chegar a zero; depois leia os dígitos do último para o primeiro. Para 255: 255 ÷ 16 dá 15 com resto 15, e 15 ÷ 16 dá 0 com resto 15, então a resposta é FF. Restos acima de nove são escritos com as letras A a F.
Por que usar hexadecimal em vez de binário?
Porque quatro dígitos binários correspondem exatamente a um dígito hexadecimal, então a conversão é uma substituição direta, sem aritmética nenhuma. O hexadecimal é uma grafia compacta e legível dos mesmos bits, e é por isso que depuradores, desmontadores e ferramentas de rede recorrem a ele.
O que significa o prefixo 0x?
É um marcador usado em C e em muitas outras linguagens para dizer que os dígitos a seguir são hexadecimais, então 0x20 vale trinta e dois e não vinte. Esta ferramenta aceita o prefixo 0x na entrada e não precisa de prefixo na saída, já que a base fica clara pela própria página.
Quantos dígitos hexadecimais um valor de 64 bits precisa?
Dezesseis, e esta ferramenta dá conta deles com exatidão. Um número de 64 bits pode passar do que a aritmética de ponto flutuante representa com precisão, então uma ferramenta que usasse números comuns devolveria uma resposta errada com aparência plausível para algo como FFFFFFFFFFFFFFFF. Trabalhar com inteiros exatos evita isso por completo.
Os dígitos hexadecimais diferenciam maiúsculas de minúsculas?
Não. FF e ff são o mesmo valor, e o campo de entrada aceita qualquer uma das duas formas. A saída é em maiúsculas por convenção, seguindo o estilo da maior parte do código-fonte, da documentação técnica e dos manuais de hardware.