Conversor de binário para hexadecimal
Resultado
Hexadecimal
- Agrupado de quatro em quatro
- 1011 0010
Um conversor de binário para hexadecimal reescreve um número da base dois na base dezesseis. É a conversão mais fácil desta família, porque nada é calculado de fato: um dígito hexadecimal comporta exatamente quatro dígitos binários, então o trabalho todo é cortar a cadeia binária em grupos de quatro a partir da direita e ler cada grupo como um único dígito. 10110010 se divide em 1011 e 0010, que são B e 2, e a resposta é B2. Essa relação fixa de quatro para um é a razão de a base dezesseis existir — um byte tem oito bits e, portanto, exatamente dois dígitos hexadecimais, e um endereço de dezesseis bits é exatamente quatro deles — e é por isso que quem programa escreve código de máquina, valores de cor e endereços de memória nessa base em vez de escrever em binário. A página imprime embaixo da resposta o agrupamento que usou, porque o agrupamento é a conversão. Quando a quantidade de algarismos não é múltipla de quatro, o grupo mais à esquerda é preenchido com zeros até ser: 10110 vira 0001 0110, que é 16. Esses zeros não mudam o valor, só o agrupamento.
Todos os dezesseis grupos de quatro bits e o algarismo hexadecimal que cada um representa
| Nibble | Dígito hexadecimal | Decimal |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | A | 10 |
| 1011 | B | 11 |
| 1100 | C | 12 |
| 1101 | D | 13 |
| 1110 | E | 14 |
| 1111 | F | 15 |
Esta é a conversão inteira, escrita por extenso. Todo grupo de quatro bits que existe aparece exatamente uma vez, então nada precisa ser deduzido na hora do uso — a tabela é fechada, e quem a percorreu uma vez consegue ler qualquer cadeia binária nesta base cortando-a de quatro em quatro e consultando cada pedaço. Ela é fixa, e não derivada do número digitado acima, então não muda quando o número muda, e não há contradição quando os dois parecem discordar: o painel responde pelo que foi digitado, a tabela responde pela pergunta geral de quais são os dezesseis grupos. Leia a coluna do meio de cima para baixo e ela conta de 0 a F sem saltos, que é o ponto — as letras não são um código, e sim a continuação dos algarismos depois do nove. Leia a primeira coluna de cima para baixo e ela conta em binário subindo exatamente na mesma medida, e é isso que torna a correspondência mecânica. A tabela para em 1111 porque é ali que um algarismo hexadecimal termina: o valor seguinte precisa de um segundo algarismo, e essa é a reagrupagem que a página acima já faz.
Fórmula
10110010 = 1011 0010 = B2
- binário
- O número a ser reescrito, escrito na base dois. Nada nele é alterado pela conversão — o mesmo valor apenas passa a ser escrito com outro conjunto de algarismos
- nibble
- Um grupo de quatro algarismos binários. É a unidade com que esta conversão trabalha, e existem exatamente dezesseis nibbles possíveis, que é exatamente a razão de a base dezesseis ser a base que combina com o binário
- 0-9, A-F
- Os dezesseis algarismos hexadecimais, um por nibble. Dez deles são os numerais de sempre e os seis restantes são as letras de A a F, valendo de dez a quinze
- preenchimento
- Os zeros acrescentados à esquerda do primeiro grupo quando a contagem de algarismos não é múltipla de quatro. Eles mudam o agrupamento e nunca o valor, e é por isso que 10110 e 00010110 são duas maneiras de escrever o mesmo número
- da direita para a esquerda
- A direção em que o corte corre. Os grupos são formados a partir da extremidade direita porque é ali que fica a casa das unidades, exatamente como os milhares são separados num número decimal
- 53 bits
- O comprimento máximo da entrada: 53 algarismos binários, o que dá 9.007.199.254.740.991 e chega a catorze algarismos hexadecimais do outro lado. É a largura em que uma máquina deixa de conseguir distinguir inteiros vizinhos, então uma entrada mais longa é recusada em vez de arredondada
Esta é a conversão que as pessoas fazem com mais frequência sem pensar nela como uma conversão. Ler um byte num depurador, conferir um valor de cor, montar uma máscara de sub-rede, decodificar o prefixo de um hash, ler o despejo de um registrador de dispositivo ou comparar dois sinalizadores num log são todos casos em que os bits são a verdade e o hexadecimal é a forma em que eles são impressos — e ir e voltar entre essas duas visões é uma constante no trabalho de baixo nível. A direção importa nos dois sentidos: uma folha de dados de hardware dá um registrador como valor hexadecimal e o bit que precisa ser conferido é encontrado expandindo esse valor, enquanto uma captura de osciloscópio ou uma questão sobre um padrão de bits chega em binário e tem de ser escrita na forma que a documentação usa. Estudantes encontram aqui o atalho que torna números binários longos administráveis: uma cadeia binária de dezesseis algarismos é ilegível e os quatro hexadecimais dela não são, e saber que a relação é de quatro para um, e não algo a deduzir, tira a aritmética da tarefa por completo. A página imprime o agrupamento para que o atalho fique visível em vez de ser apenas afirmado, e é isso que a torna utilizável tanto como conferência de uma conversão feita à mão quanto como substituta dela.
Exemplos resolvidos
Reescrevendo 10110010
- Corte a cadeia em grupos de quatro, começando pela direita: 1011 e 0010
- Leia o primeiro grupo: 1011 é 8 + 2 + 1 = 11, que é B
- Leia o segundo grupo: 0010 é 2, que é 2
- Os dois algarismos juntos dão B2
O caso padrão, e um byte, então o agrupamento sai certinho. B2 é a forma em que esse valor apareceria dentro de um depurador ou de uma folha de dados — os oito bits continuam ali embaixo, e é por isso que o agrupamento é impresso ao lado da resposta em vez de ficar implícito.
Um único nibble, 1111
- Quatro algarismos já são exatamente um grupo
- 1111 é 8 + 4 + 2 + 1 = 15
- Quinze se escreve F em hexadecimal
- A resposta é um único algarismo, F
O maior nibble, e o que mostra por que as letras acabam onde acabam: quinze é o maior valor que quatro bits comportam, então F é o último algarismo da base. Não há como escrever nada maior com um único algarismo hexadecimal, e é exatamente essa propriedade que está sendo usada aqui.
Preenchendo uma entrada curta, 10110
- Cinco algarismos não se dividem em grupos de quatro, então comece pela direita: 0110 é um grupo completo
- Sobra um algarismo à esquerda, então preencha-o até quatro: 0001
- 0001 é 1, e 0110 é 6, o que dá os dois algarismos 16
- O agrupamento mostrado é 0001 0110, que tem dois algarismos a mais do que a entrada
O caso que parece um erro e não é. O agrupamento da saída é mais longo do que a entrada porque um algarismo hexadecimal tem quatro bits de largura e o último grupo precisa ser completado até essa largura. 10110 e 00010110 são o mesmo número, e o preenchimento é o que dá ao segundo algarismo um algarismo para ser — sem ele, o algarismo solto que sobrou não teria correspondente nenhum.
Um valor negativo, −10110
- O sinal de menos fica fora do número, então deixe-o de lado e converta 10110
- 10110 se reagrupa em 0001 0110, que se lê 16
- Recoloque o sinal nas duas leituras: −16
O sinal fica fora dos algarismos nas duas saídas. Dobrá-lo para dentro exigiria uma largura fixa onde fazê-lo, e aqui não existe nenhuma — um processador guardando esse valor em oito bits escreveria um padrão de uns e zeros que depende inteiramente de a largura ser oito. A leitura hexadecimal mantém o sinal pelo mesmo motivo que a binária mantém.
Limitações
Esta página reescreve apenas números binários inteiros. Não existe ponto binário, então uma entrada fracionária é recusada em vez de convertida, e nenhuma fração hexadecimal é produzida. A entrada pode ter no máximo 53 algarismos binários, o que dá 9.007.199.254.740.991 e catorze algarismos hexadecimais do outro lado; valores mais longos não podem ser guardados exatamente por uma máquina e são recusados em vez de aproximados. Zeros à esquerda na entrada são aceitos e ignorados, mas os zeros acrescentados pelo agrupamento aparecem de propósito — uma saída preenchida é mais larga do que a entrada por decisão, e isso não é um erro. Um sinal de menos na frente é aceito e levado para as duas saídas. Números inteiros apenas, então esta é uma conversão de leitura e não aritmética: somar, subtrair, multiplicar e dividir em qualquer das duas bases fica nas páginas de calculadora indicadas abaixo, e o caminho inverso, de hexadecimal de volta para binário, tem página própria. As duas linhas de saída — o hexadecimal e o agrupamento — são impressas como texto, algarismo por algarismo, e nenhuma delas passa por separação de milhares nem por vírgula decimal, porque nesta página não sai nenhuma quantidade decimal.
Perguntas frequentes
- Por que a saída é maior do que o que eu digitei?
- Porque um algarismo hexadecimal tem exatamente quatro bits de largura e o grupo mais à esquerda precisa ser completado até essa largura. Uma entrada de cinco algarismos como 10110 é um grupo completo (0110) mais um algarismo sobrando, e o que sobra é preenchido à esquerda para formar 0001. Os zeros não mudam o valor — 10110 e 00010110 são o mesmo número — e o preenchimento é o que dá ao último grupo um algarismo para ser. Sem ele, o algarismo solto não teria a que corresponder na tabela.
- Existe alguma aritmética nesta conversão?
- Não, e é essa a parte interessante. Como dezesseis é uma potência de dois, a fronteira entre as bases cai exatamente a cada quatro algarismos binários, então a conversão é uma reagrupagem e não um cálculo. Nada é multiplicado, nada é somado e nada é transportado; os algarismos são cortados de quatro em quatro e cada grupo é consultado. Essa é a razão de se usar hexadecimal em vez de outra notação compacta qualquer, e é por isso que o agrupamento é impresso ao lado da resposta: o agrupamento é o método, mostrado em vez de descrito.
- Por que um algarismo hexadecimal vale quatro bits e não três ou cinco?
- Porque quatro bits comportam exatamente dezesseis valores distintos e um algarismo hexadecimal tem exatamente dezesseis símbolos distintos. Três bits dariam apenas oito valores, e é por isso que o octal combina com três; cinco bits dariam trinta e dois, que nenhuma base usual aproveita. A correspondência precisa ser exata para a reagrupagem funcionar sem nenhum transporte, e só as potências de dois dão isso. É também por isso que um byte, tendo oito bits, é sempre exatamente dois algarismos hexadecimais.
- Qual é o maior número binário que eu posso converter?
- 53 algarismos, o que dá 9.007.199.254.740.991 em decimal e catorze algarismos hexadecimais depois da conversão. O teto é uma propriedade de como as máquinas guardam números exatamente, e não uma regra que esta página tenha escolhido: acima dessa largura os inteiros vizinhos deixam de ser distinguíveis, então uma entrada mais longa não poderia ser convertida fielmente. Ela é recusada com uma mensagem em vez de arredondada, o que importa porque uma resposta arredondada aqui teria toda a aparência de um valor hexadecimal comum.
- Posso converter um número binário com parte fracionária?
- Nesta página não. Não existe ponto binário aceito nem fração hexadecimal produzida, porque uma conversão fracionária precisaria de uma decisão extra sobre quantas casas manter e como arredondar a última. Todas as páginas deste grupo trabalham com números inteiros, então a mesma entrada nunca é aceita num lugar e recusada em outro. Dentro dessa fronteira a conversão é exata: qualquer número binário inteiro até o limite de comprimento corresponde a exatamente um valor hexadecimal, sem arredondamento em lugar nenhum.
- Maiúsculas e minúsculas fazem diferença na resposta?
- A resposta é impressa sempre em maiúsculas — B2, e não b2 —, mas as duas formas são o mesmo valor e ambas são compreendidas em todo lugar. Documentação, desmontadores e folhas de dados usam maiúsculas quase sempre, enquanto valores de cor em CSS são convencionalmente escritos em minúsculas, então quem vem de qualquer um dos dois lados vai reconhecer o que vê. Esta página imprime em maiúsculas por consistência com o resto da família e porque é a convenção do material com que ela costuma ser usada.
Referências
- Hexadecimal — the base-sixteen system, the digits beyond nine, and the relationship between one hexadecimal digit and four binary digits — Wolfram MathWorld (United States)
- Binary number — the base-two system and positional notation, which is what makes a fixed-width regrouping possible — Wolfram MathWorld (United States)
- Nibble — the four-bit group that one hexadecimal digit corresponds to, and the unit this conversion is carried out in — Wolfram MathWorld (United States)