Como converter texto para binário e hexadecimal: guia passo a passo com exemplos resolvidos
Nesta página
Resposta rápida
Para converter texto para binário, substitua cada caractere pelo seu código numérico — normalmente o seu código ASCII — e depois escreva esse número na base 2 com 8 bits por caractere. Por exemplo, a letra H tem o código ASCII 72, que em binário é 01001000, e a letra i tem o código 105, que é 01101001. Assim, a palavra "Hi" torna-se 01001000 01101001. O sistema hexadecimal é apenas uma forma mais curta de escrever os mesmos bytes: agrupe cada byte de 8 bits em duas metades de 4 bits e escreva cada metade como um dígito hexadecimal, de modo que H é 0x48 e "Hi" é 0x48 0x69.
Por que os computadores guardam texto como números
Todo computador, telefone e roteador trabalha, no fundo, com eletricidade: um fio está ligado ou desligado, com tensão alta ou baixa. Os engenheiros transformaram essa realidade física num sistema de numeração com apenas dois dígitos, 0 e 1, chamado código binário. Cada 0 ou 1 é um bit, e oito bits agrupados formam um byte. O texto tem de caber nesse sistema, por isso há muito tempo os programadores concordaram com um dicionário comum que atribui um número a cada letra, dígito e sinal de pontuação. Esse dicionário é uma codificação de caracteres. A mais antiga e difundida é o ASCII, que cobre o alfabeto latino básico, os dígitos de 0 a 9, a pontuação comum e alguns caracteres de controle. Os sistemas modernos usam UTF-8, uma codificação que mantém o ASCII exatamente igual para os primeiros 128 caracteres e acrescenta bytes extras para letras acentuadas, símbolos e escritas de todo o mundo. Entender essa cadeia — caractere, depois número, depois binário — é todo o segredo. Quando você sabe transformar uma letra num número e um número em binário, consegue converter qualquer texto à mão, e também consegue ler binário e devolvê-lo a texto.
O método dos valores posicionais: como funcionam os números binários
O sistema binário usa valores posicionais tal como o decimal, exceto que cada posição vale o dobro da anterior em vez de dez vezes mais. Em decimal, o número 72 significa 7 dezenas mais 2 unidades. Em binário, as posições leem-se da direita para a esquerda como 1, 2, 4, 8, 16, 32, 64 e 128.
Exemplo resolvido 1: a letra H é 72, que é 01001000
A letra maiúscula H tem o código ASCII 72. Para escrever 72 em binário, trabalhe a partir do maior valor posicional que cabe: O 128 não cabe em 72, então escreva 0. O 64 cabe: 72 menos 64 deixa 8. Escreva 1. O 32 não cabe em 8, então escreva 0. O 16 não cabe em 8, então escreva 0. O 8 cabe: 8 menos 8 deixa 0. Escreva 1. O 4, o 2 e o 1 não cabem em 0, então escreva 0, 0, 0. Ao ler os dígitos da esquerda para a direita obtém-se 01001000. Confira somando os valores posicionais que levam um 1: 64 + 8 = 72. A conversão está correta.
Exemplo resolvido 2: a letra minúscula i é 105, que é 01101001
A letra minúscula i tem o código ASCII 105. Aplique o mesmo método: O 128 não cabe em 105, então escreva 0. O 64 cabe: 105 menos 64 deixa 41. Escreva 1. O 32 cabe: 41 menos 32 deixa 9. Escreva 1. O 16 não cabe em 9, então escreva 0. O 8 cabe: 9 menos 8 deixa 1. Escreva 1. O 4 não cabe em 1, então escreva 0. O 2 não cabe em 1, então escreva 0. O 1 cabe: 1 menos 1 deixa 0. Escreva 1. O resultado é 01101001. Confira: 64 + 32 + 8 + 1 = 105. Correto. Observe que ambos os resultados usam exatamente oito dígitos. Isso é deliberado: um caractere ASCII é guardado num byte, e completar o número binário com zeros à esquerda até oito dígitos mantém todos os caracteres alinhados. Sem esse preenchimento, um leitor não saberia onde termina um caractere e onde começa o seguinte.
Converter uma palavra inteira, passo a passo
Converter uma palavra é apenas repetir o método da letra para cada caractere, incluindo espaços e pontuação. Um espaço também é um caractere real: tem o código ASCII 32, que em binário é 00100000.
Exemplo resolvido 3: "Hi" torna-se 01001000 01101001
1. Procure H: código ASCII 72, binário 01001000. 2. Procure i: código ASCII 105, binário 01101001. 3. Junte os dois bytes com um espaço para facilitar a leitura: 01001000 01101001. O espaço entre os dois grupos só ajuda o olho humano. Um computador guarda os dezesseis bits seguidos, sem separador.
Exemplo resolvido 4: "Cat" torna-se 01000011 01100001 01110100
C tem o código 67. Em binário: 64 + 2 + 1 = 67, logo 01000011. a tem o código 97. Em binário: 64 + 32 + 1 = 97, logo 01100001. t tem o código 116. Em binário: 64 + 32 + 16 + 4 = 116, logo 01110100. Portanto, "Cat" em binário é 01000011 01100001 01110100. Mude apenas a primeira letra para o c minúsculo, cujo código é 99, e o primeiro byte passa a ser 01100011: um lembrete de que a conversão para binário distingue maiúsculas de minúsculas.
Exemplo resolvido 5: "Hi!" mostra como funciona a pontuação
O ponto de exclamação não é especial para um computador: tem o código ASCII 33, que em binário é 00100001 (32 + 1 = 33). Assim, "Hi!" é 01001000 01101001 00100001. A mesma regra vale para os dígitos: o caractere "0" não é o número zero em ASCII. Tem o código 48, que é 00110000, e o caractere "9" tem o código 57, que é 00111001. Por isso o texto "123" converte-se para 00110001 00110010 00110011, e não para o valor binário do número 123.
Ler binário e devolvê-lo a texto
Decodificar inverte o processo. Divida a sequência binária em grupos de 8 bits, some os valores posicionais de cada grupo e procure o código resultante na tabela ASCII.
Exemplo resolvido 6: decodificar 01001000 01101001
Primeiro byte 01001000: os bits 1 estão nas posições 64 e 8, logo 64 + 8 = 72, que é H. Segundo byte 01101001: os bits 1 estão nas posições 64, 32, 8 e 1, logo 64 + 32 + 8 + 1 = 105, que é i. O texto decodificado é "Hi". Se alguma vez decodificar um byte e obtiver um número maior que 127, você já não está em ASCII simples: está vendo parte de um caractere UTF-8 de vários bytes, como explicado abaixo.
Usar a tabela ASCII
Você não precisa decorar os 128 códigos ASCII. Algumas referências bastam, e o resto segue um padrão claro: As maiúsculas vão de A = 65 a Z = 90. Assim, B é 66, C é 67 e O é 79. As minúsculas vão de a = 97 a z = 122. Assim, b é 98, i é 105 e z é 122. Os dígitos vão de "0" = 48 a "9" = 57. O espaço é 32, e a pontuação comum está por perto: "!" é 33. Um padrão merece ser decorado porque economiza muito tempo: cada minúscula vale exatamente 32 a mais que a sua maiúscula correspondente. A é 65 e a é 97; H é 72 e h é 104; a diferença é sempre 32. Em binário, essa diferença é um único bit — o bit que vale 32 — e por isso mudar a caixa de uma letra em binário significa inverter um só bit. Por exemplo, H é 01001000 e h é 01101000: só o terceiro bit a partir da esquerda muda.
O sistema hexadecimal: a forma curta de escrever os mesmos bytes
As sequências binárias ficam longas depressa. Oito caracteres de texto tornam-se 64 bits, difíceis de ler e fáceis de digitar errado. O sistema hexadecimal, ou hex, resolve isso usando a base 16. Os seus dezesseis dígitos são de 0 a 9 seguidos de A a F, em que A significa 10, B significa 11, C significa 12, D significa 13, E significa 14 e F significa 15. A conversão é simples porque 16 é uma potência de 2. Divida cada byte em duas metades de 4 bits, chamadas nibbles, e escreva cada metade como um dígito hexadecimal: H é 0100 1000 em binário. O nibble esquerdo 0100 equivale a 4, e o direito 1000 equivale a 8, logo H é 0x48 em hexadecimal. Confira: 4 × 16 + 8 = 72. i é 0110 1001. O nibble esquerdo 0110 equivale a 6, e o direito 1001 equivale a 9, logo i é 0x69. Confira: 6 × 16 + 9 = 105. "Hi" em hexadecimal é, portanto, 0x48 0x69, que os programadores costumam escrever como 4869.
Exemplo resolvido 7: converter entre binário, hexadecimal e decimal
Tome o número binário 1010 0110. Como dois nibbles, 1010 equivale a 10, que é o A hexadecimal, e 0110 equivale a 6, logo o valor hexadecimal é 0xA6. Em decimal, 0xA6 significa 10 × 16 + 6 = 166. Você pode verificar isso diretamente a partir das posições binárias: 128 + 32 + 4 + 2 = 166. As três formas — 10100110, 0xA6 e 166 — descrevem exatamente o mesmo byte. Uma segunda verificação rápida: o maior valor que um byte pode conter é 11111111 em binário, que é 0xFF em hexadecimal e 255 em decimal (128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255). Por isso os códigos de cor na web, como #FF5733, usam dois dígitos hexadecimais por canal: FF significa vermelho em força total, 255; 57 significa verde em 87, e 33 significa azul em 51.
Além do ASCII: UTF-8 e caracteres de vários bytes
O ASCII serve bem para o inglês, mas para em 128 caracteres. Um é francês, um ü alemão ou um cifrão de euro não cabem num byte ASCII, por isso o texto moderno usa UTF-8. Em UTF-8, os primeiros 128 caracteres são idênticos ao ASCII, e por isso "Hi" parece igual nas duas codificações. Os caracteres além desse intervalo usam dois, três ou quatro bytes, e cada byte segue um padrão fixo que diz ao decodificador onde o caractere começa e termina.
Exemplo resolvido 8: a letra é em UTF-8
A letra é tem o ponto de código Unicode U+00E9, decimal 233. Em UTF-8 é guardada como dois bytes: 11000011 10101001, ou 0xC3 0xA9 em hexadecimal. Em decimal, esses bytes são 195 e 169. Observe o padrão: o primeiro byte começa por 110, o que indica "segue um caractere de dois bytes", e o segundo byte começa por 10, o que indica "este é um byte de continuação". Um decodificador que vê 11000011 sabe que não deve tratá-lo como um caractere isolado, mas ler mais um byte antes de procurar a letra. Para o leitor em português há um caso próximo: a letra ã tem o ponto de código U+00E3 e em UTF-8 é guardada como 11000011 10100011, ou seja, 0xC3 0xA3. É por isso que um texto com tildes ocupa mais bytes do que caracteres, e que um arquivo aberto com a codificação errada mostra caracteres estranhos em vez de ã.
Exemplo resolvido 9: o cifrão do euro € em UTF-8
O cifrão do euro tem o ponto de código U+20AC, decimal 8364. Em UTF-8 precisa de três bytes: 11100010 10000010 10101100, ou 0xE2 0x82 0xAC em hexadecimal, que são 226, 130 e 172 em decimal. O 1110 inicial do primeiro byte indica um caractere de três bytes, e os dois bytes seguintes começam por 10. Essa é a razão de um arquivo aberto com a codificação errada mostrar caracteres sem sentido: os bytes estão certos, mas o leitor está agrupando-os mal. Uma consequência prática: contar caracteres não é o mesmo que contar bytes. A palavra "café" tem quatro caracteres mas cinco bytes em UTF-8, porque é ocupa dois bytes. Qualquer ferramenta que informe os dois números está dizendo duas coisas realmente diferentes, e confundi-las é um dos erros mais comuns entre iniciantes.
Onde o binário e o hexadecimal aparecem na vida real
O binário e o hexadecimal não são abstrações de sala de aula. Aparecem no trabalho técnico do dia a dia: Programação: os depuradores mostram a memória em hexadecimal, e os programadores escrevem flags de bits e valores de cor em hexadecimal porque é compacto. Um valor de permissão, um endereço de memória ou um escape Unicode como \u00E9 remontam aos mesmos valores de byte deste guia. Redes: os endereços de internet são quatro bytes. O conhecido endereço 192.168.0.1 é 11000000.10101000.00000000.00000001 em binário e C0.A8.00.01 em hexadecimal. As máscaras de sub-rede, que decidem que parte de um endereço identifica a rede, também se leem como padrões de bits. Formatos de arquivo e codificação: o texto enviado pela web, guardado em arquivos ou passado pela codificação Base64 começa como bytes. Saber que um byte são oito bits, e que o hexadecimal é apenas uma forma compacta de escrever esses bits, torna as mensagens de erro sobre "UTF-8 inválido" ou "byte inesperado" muito menos misteriosas. Hardware e eletrônica: interruptores, LEDs e leituras de sensores são bits. Um microcontrolador que lê o byte 10110101 está lendo, na verdade, oito sinais de ligado e desligado ao mesmo tempo.
Erros comuns a evitar
Primeiro, não confunda o caractere "1" com o número 1: o caractere tem o código ASCII 49, enquanto o número 1 em binário é simplesmente 1. Segundo, complete sempre até oito bits por caractere; um resultado sem preenchimento como 1001000 para H é numericamente correto mas ilegível como texto, porque um decodificador não consegue encontrar os limites dos bytes. Terceiro, lembre-se de que a conversão de texto para binário distingue maiúsculas e espaços: "Hi" e "hi" são diferentes, e "Hi" e "Hi " também, porque o espaço final acrescenta o byte 00100000. Por fim, quando vir um byte acima de 127, não o force pela tabela ASCII. Verifique se você está lidando com UTF-8 e decodifique a sequência completa de vários bytes.
Experimente você mesmo
A forma mais rápida de ganhar confiança é converter uma palavra curta à mão e depois conferi-la. Escreva o seu nome em binário usando as referências ASCII acima, decodifique 01001000 01101001 de volta para "Hi" e converta 0x48 de volta para 72. Depois experimente a mesma palavra no tradutor binário gratuito do ToolFacil, que converte texto para binário e hexadecimal na hora: https://toolfacil.com/binary-translator/. Use a ferramenta para conferir os seus cálculos à mão, e use os cálculos à mão para entender o que a ferramenta está fazendo.
Perguntas frequentes
Como converto texto para binário passo a passo?
Procure o código ASCII de cada caractere, converta cada código num número binário de 8 bits com os valores posicionais 128, 64, 32, 16, 8, 4, 2 e 1, e junte os bytes por ordem. Por exemplo, H é 72, que é 01001000, e i é 105, que é 01101001, logo "Hi" é 01001000 01101001.
Qual é o código binário da letra A?
A letra maiúscula A tem o código ASCII 65, que em binário é 01000001 (64 + 1 = 65). A letra minúscula a tem o código 97, que é 01100001 (64 + 32 + 1 = 97). A diferença de 32 é a mesma para todos os pares de letras.
Como converto binário de volta para texto?
Divida o binário em grupos de oito bits, some os valores posicionais dos bits 1 de cada grupo para obter um código decimal e procure esse código na tabela ASCII. Por exemplo, 01000011 dá 64 + 2 + 1 = 67, que é a letra C.
Qual é a diferença entre binário e hexadecimal?
O binário é base 2 e usa apenas os dígitos 0 e 1, enquanto o hexadecimal é base 16 e usa os dígitos de 0 a 9 mais A a F. O hexadecimal é uma abreviatura compacta do binário: cada quatro bits tornam-se exatamente um dígito hexadecimal, logo o byte 01001000 escreve-se como 0x48. Eles descrevem os mesmos valores, apenas com comprimentos diferentes.
Por que é ocupa dois bytes mas H ocupa um?
H faz parte do conjunto ASCII original, logo cabe num só byte. A letra é fica fora do ASCII, logo o UTF-8 guarda-a como uma sequência de dois bytes, 11000011 10101001 (0xC3 0xA9). O cifrão do euro € precisa de três bytes, 11100010 10000010 10101100. Por isso, contar caracteres e contar bytes dão respostas diferentes em textos que não são em inglês.
Como converto um número decimal para binário e hexadecimal?
Para o binário, subtraia repetidamente o maior valor posicional que couber (128, 64, 32, 16, 8, 4, 2, 1) e escreva 1 por cada valor usado. Para o hexadecimal, divida o número por 16: o quociente dá o dígito maior e o resto dá o dígito menor. Por exemplo, 166 dividido por 16 é 10 com resto 6, logo 166 é 0xA6, e 0xA6 em binário é 1010 0110.
A conversão de texto para binário é o mesmo que criptografar?
Não. Converter texto para binário é uma codificação, não uma criptografia: qualquer pessoa que conheça ASCII pode revertê-la na hora. A criptografia real embaralha os dados com uma chave secreta, de modo que o resultado não pode ser lido sem essa chave. Nunca trate a saída em binário ou hexadecimal como uma forma segura de esconder senhas ou informações privadas.
Fontes
- Wikipedia, "ASCII": a tabela de caracteres ASCII padrão e os seus códigos: https://en.wikipedia.org/wiki/ASCII
- Internet Engineering Task Force, RFC 3629, "UTF-8, a transformation format of ISO 10646": as regras oficiais de codificação UTF-8: https://www.rfc-editor.org/rfc/rfc3629
- Consórcio Unicode, tabelas de caracteres Unicode: pontos de código como U+00E9 e U+20AC: https://www.unicode.org/charts/
Guias relacionados
Como Melhorar sua Velocidade de Digitação (PPM)
Aprenda a melhorar sua velocidade de digitação com a fileira base, exercícios de precisão e um plano de 2 semanas…
Como gerar números aleatórios de forma justa
Aprenda a gerar números aleatórios de forma justa: a fórmula do intervalo, exemplos resolvidos, sorteios sem repetição…
Como alterar a caixa de texto: maiúsculas, camelCase e snake_case
Aprenda a alterar maiúsculas e minúsculas: títulos em português, camelCase, snake_case e kebab-case, com regras…
Como escrever números por extenso: cheques, dinheiro e números grandes
Aprenda a escrever números por extenso: regras do hífen, valores em dinheiro, como preencher um cheque, decimais e…