Binário, decimal e hexadecimal: como passar de um para outro

Converter entre bases parece mágica até você ver que é sempre a mesma ideia: cada dígito vale conforme o lugar que ocupa. Aqui você aprende a passar de binário para decimal e de decimal para binário à mão, a ler o hexadecimal sem medo e a traduzir texto em bits, com contas resolvidas e uma tabela de 0 a 15 para ter à mão.

Atualizado:

O que é um sistema posicional

No número decimal 4.095, o 4 não vale 4: vale 4.000, porque está na casa dos milhares. Cada posição multiplica o dígito por uma potência de 10 (1, 10, 100, 1.000…). Esse é o sistema posicional, e a base é a quantidade de dígitos diferentes que se usam: dez no decimal.

O binário funciona igual, mas com base 2: só existem o 0 e o 1, e cada casa vale o dobro da anterior. O hexadecimal usa base 16: os dezesseis dígitos são 0 a 9 e as letras A a F, e cada casa vale 16 vezes a anterior. Os computadores trabalham em binário porque um circuito só precisa distinguir dois estados (desligado e ligado), e o hexadecimal é uma forma curta de escrever esses bits.

Quanto vale cada casa. Decorar as potências de 2 até 128 poupa quase todas as contas.
Posição (da direita para a esquerda)Valor em binárioValor em hexadecimal
1.ª11
2.ª216
3.ª4256
4.ª84.096
5.ª1665.536
6.ª321.048.576
7.ª6416.777.216
8.ª128268.435.456

De binário para decimal, à mão

Escreve-se cada dígito com o valor da sua casa e somam-se só as casas em que há um 1. Exemplo com 1101: da direita para a esquerda, as casas valem 1, 2, 4 e 8.

  1. Escreva o número e, embaixo, o valor de cada posição: 1 1 0 1 sobre 8 4 2 1.
  2. Veja o que há em cada casa: um 1 na do 8, um 1 na do 4, um 0 na do 2 e um 1 na do 1.
  3. Ignore as casas que têm um 0 (aqui, a do 2).
  4. Some: 8 + 4 + 0 + 1 = 13. Então 1101 em binário é 13 em decimal.

Com mais dígitos é a mesma coisa: 11111111 é 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, o maior valor que cabe em 8 bits. E 10110110 é 128 + 32 + 16 + 4 + 2 = 182.

De decimal para binário, por divisões sucessivas

Divide-se o número por 2 várias vezes, anotando o resto de cada divisão (sempre 0 ou 1), até chegar a quociente 0. Os restos, lidos de baixo para cima, formam o número binário. Exemplo com 45:

Lendo os restos de baixo para cima, fica 101101. Para conferir, some: 32 + 8 + 4 + 1 = 45.

Há um método alternativo que muita gente prefere: subtrair potências de 2 da maior para a menor. Para 200: cabe o 128 (sobra 72), cabe o 64 (sobra 8), não cabem 32 e 16, mas cabe o 8 (sobra 0). As casas usadas são 128, 64 e 8, então 200 = 11001000.

Hexadecimal: dezesseis dígitos e uma tabela para ter à mão

Como não existem dígitos para 10 a 15, usam-se as letras A, B, C, D, E e F. Um dígito hexadecimal equivale exatamente a quatro bits (um “nibble”), e por isso ele é tão prático: um byte, de 8 bits, escreve-se com apenas dois dígitos hexadecimais.

Para passar de hexadecimal para decimal, multiplique cada dígito pela potência de 16 da sua casa e some. Por exemplo, 3F = 3 × 16 + 15 = 63 e A3 = 10 × 16 + 3 = 163.

De 0 a 15 nas quatro bases que a ferramenta mostra.
DecimalBinário (4 bits)OctalHexadecimal
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Por que se usa o hexadecimal: bytes, cores e endereços

Um byte são 8 bits e vai de 0 a 255 (00000000 a 11111111). Escrever bits à mão é lento e sujeito a erros; em hexadecimal o mesmo byte são dois caracteres, de 00 a FF. Para passar de binário para hexadecimal, separe os bits em grupos de quatro a partir da direita e troque cada grupo pelo seu dígito da tabela. Exemplo: 11010111 se divide em 1101 e 0111, que são D e 7, então vale D7. Em decimal é 13 × 16 + 7 = 215.

O caso mais conhecido são as cores da web. Em #FF8800 há três bytes: FF para o vermelho (255), 88 para o verde (136) e 00 para o azul (0). É um laranja intenso: todo o vermelho, um pouco mais da metade do verde e nada de azul. O hexadecimal também aparece em endereços de memória, em códigos de erro e em identificadores de rede.

De texto para binário com ASCII

Um computador guarda cada letra como um número, e esse número como bits. Na tabela ASCII, a A é 65, que em binário de 8 bits é 01000001. A palavra “Hi” são duas letras: H é 72 (01001000) e i é 105 (01101001), então se escreve 01001000 01101001. Com “Ola” são 79, 108 e 97, ou seja, 01001111 01101100 01100001, ou em hexadecimal 4F 6C 61.

A ferramenta usa a codificação UTF-8: para letras básicas do inglês cada caractere ocupa um byte de 8 bits, mas um ã, uma letra acentuada ou um emoji ocupam vários bytes, e por isso dão mais de 8 bits. Por exemplo, o ã são dois bytes: 11000011 10100011 (C3 A3 em hexadecimal).

Como fazer tudo isso com a ferramenta

O conversor “Binário, decimal e hexadecimal” serve para conferir suas contas à mão ou para resolver números longos sem erros.

  1. Digite o número no campo da sua base: “Decimal (base 10)”, “Binário (base 2)”, octal ou “Hexadecimal (base 16)”. Os outros três se preenchem sozinhos.
  2. Se o dígito não corresponde à base (um 2 em binário, por exemplo), a ferramenta avisa.
  3. Para texto, digite no campo “Texto” e veja “Binário (8 bits por caractere)” e o hexadecimal por bytes. Você também pode colar bits em grupos de 8 para voltar ao texto.
  4. Para bases diferentes, use “Qualquer base (de 2 a 36)”: você escolhe a base de origem, a de destino e o número.

Os limites: só converte inteiros não negativos (sem decimais nem sinal) e não coloca zeros à esquerda por você, então se quiser 8 bits fixos precisa completar à mão (13 é 00001101). Nada do que você digita sai do seu navegador.

Erros comuns

Exercícios resolvidos para praticar

Tente resolver cada um antes de olhar a resposta e confira depois com a ferramenta.

Perguntas frequentes

Como passo 1101 de binário para decimal?

Você soma os valores das casas em que há um 1: 8 + 4 + 1 = 13. O segundo dígito da direita é um 0, então o 2 não entra na soma.

Quanto é 255 em binário e em hexadecimal?

255 é 11111111 em binário e FF em hexadecimal. É o maior valor que cabe em um byte de 8 bits.

Por que o hexadecimal usa letras?

Porque precisa de dezesseis símbolos diferentes e o sistema decimal só oferece dez (0 a 9). Por isso A vale 10, B vale 11, C vale 12, D vale 13, E vale 14 e F vale 15.

Quantos números diferentes se podem escrever com 8 bits?

256, de 0 a 255. Em geral, com n bits se podem representar 2 elevado a n valores.

A ferramenta converte números negativos ou com decimais?

Não, só inteiros não negativos. Para texto usa UTF-8, então letras acentuadas e emojis dão mais de 8 bits.