Pular para o conteúdo principal
CalcMax

Conversor de binário para hexadecimal

Resultado

B2

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

NibbleDígito hexadecimalDecimal
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
1010A10
1011B11
1100C12
1101D13
1110E14
1111F15

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

  1. Reescrevendo 10110010

    1. Corte a cadeia em grupos de quatro, começando pela direita: 1011 e 0010
    2. Leia o primeiro grupo: 1011 é 8 + 2 + 1 = 11, que é B
    3. Leia o segundo grupo: 0010 é 2, que é 2
    4. 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.

  2. Um único nibble, 1111

    1. Quatro algarismos já são exatamente um grupo
    2. 1111 é 8 + 4 + 2 + 1 = 15
    3. Quinze se escreve F em hexadecimal
    4. 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.

  3. Preenchendo uma entrada curta, 10110

    1. Cinco algarismos não se dividem em grupos de quatro, então comece pela direita: 0110 é um grupo completo
    2. Sobra um algarismo à esquerda, então preencha-o até quatro: 0001
    3. 0001 é 1, e 0110 é 6, o que dá os dois algarismos 16
    4. 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.

  4. Um valor negativo, −10110

    1. O sinal de menos fica fora do número, então deixe-o de lado e converta 10110
    2. 10110 se reagrupa em 0001 0110, que se lê 16
    3. 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

Calculadoras relacionadas