Todo estudante de informática no Brasil passa por esse exercício: pegar o próprio nome e escrever em código binário. Este conversor de texto para binário faz isso na hora. Digite Oi e você recebe 01001111 01101001: o O maiúsculo é o número 79 e o i minúsculo é o 105. Como português tem acento e cedilha, vale saber desde já como a ferramenta trata essas letras: o ç vira 11100111 e o ã vira 11100011, um byte cada. Funciona para trabalho de faculdade, curso técnico, desafio de programação ou mensagem secreta para os amigos, e também faz o caminho inverso, de binário para texto.
O que o conversor de Texto para Binário faz
Cada letra, número e espaço na sua tela é um número por baixo. O computador não guarda a letra "A": ele guarda o número 65 e desenha um "A" porque uma tabela diz que é assim. Binário é só esse mesmo número escrito em base 2: uma sequência de zeros e uns agrupada em bytes. O conversor pega o que você digitou e mostra os números que estão por baixo.
Digite Hi, clique em Convert to Binary e o conversor devolve:
01001000 01101001
São dois bytes, com oito bits cada. O primeiro (01001000) é o decimal 72, que a tabela ASCII associa ao H maiúsculo. O segundo (01101001) é o decimal 105, que corresponde ao i minúsculo. As mesmas letras que você digitou, escritas na língua que o processador fala.
Digite Olá, mundo! e você recebe onze grupos de volta, um por caractere, incluindo a vírgula, o espaço e o ponto de exclamação. Espaços não são invisíveis para o computador: são o byte 32 (00100000), tão reais quanto qualquer letra.
Como usar
A ferramenta tem dois blocos, e a interface está em inglês:
- Texto para binário: digite ou cole o texto em Text Input e clique em Convert to Binary. O resultado aparece em Binary Output. Clique em Copy to Clipboard para copiar.
- Binário para texto: cole os bytes em Binary Input, separados por espaço, e clique em Convert to Text. O texto aparece em Text Output.
- Recomeçar: Clear Fields limpa tudo.
A conversão acontece quando você clica no botão, não enquanto digita. Os dois blocos estão ligados: o binário gerado em cima já aparece em Binary Input, pronto para você testar a volta.
Por que alguém precisa ver binário
A maioria das pessoas nunca olha para o binário diretamente. O computador cuida disso, o editor mostra o resultado e pronto. Mas existem alguns momentos em que ver os bits faz diferença:
- Aprender o básico de computação. A codificação de caracteres é a primeira abstração que todo estudante de computação encontra. Ler
01001000comoHpela primeira vez é quando os bits deixam de ser mistério. - Investigar problemas de codificação. Quando um "ç" aparece como
çou uma planilha CSV quebra num caractere especial, o problema quase sempre é um byte que o programa que recebeu não esperava. Olhar os bytes ajuda a entender o que está acontecendo. - Protocolos de baixo nível. Cabeçalhos de pacotes de rede, porta serial, firmware de microcontrolador, Arduino: em qualquer lugar onde os bytes viajam um de cada vez, você lê em binário.
- Hobby e enigmas. Escape room, desafios de CTF, pistas de geocaching: binário é um formato popular de "mensagem secreta" porque parece enigmático, mas decodifica fácil.
- Ensinar crianças. Mostrar para uma criança de 10 anos que
OIé01001111 01001001é o momento em que o binário deixa de ser abstrato.
Muito conversor de binário por aí esconde a conversão atrás de um cadastro ou embrulha tudo num "pacote para desenvolvedores" com doze funções que você não quer. Este só converte.
Como a codificação de caracteres funciona
A conversão tem duas etapas. Primeiro, cada caractere do texto vira um número. Depois, esse número é escrito em base 2.
Para os primeiros 128 caracteres (o alfabeto sem acentos, os dígitos, a pontuação básica e alguns códigos de controle), essa tabela é o ASCII, o Código Padrão Americano para o Intercâmbio de Informação, de 1963. O ASCII usa sete bits por caractere, o que dá 128 valores possíveis (de 0 a 127). O conversor completa cada valor até 8 bits para facilitar a leitura, então o primeiro bit é sempre 0 nos caracteres ASCII.
Passou do caractere 127, com letras acentuadas, símbolos de moeda, emoji, cirílico, chinês, o ASCII acaba. Os sistemas modernos usam o Unicode, que dá um número (o ponto de código) a cada caractere de todos os sistemas de escrita do planeta, hoje cerca de 150 mil caracteres. O Unicode é só a numeração. A forma de escrever esses números em bytes mais comum na web é o UTF-8.
Acentos, cedilha e emoji: o que esta ferramenta faz
Aqui está o ponto que mais importa para quem escreve em português. Esta ferramenta não usa UTF-8. Ela pega o número de cada caractere como o JavaScript guarda internamente (o código UTF-16) e escreve em binário, com no mínimo 8 dígitos.
- Letras acentuadas e ç têm números entre 128 e 255, então cada uma vira um byte só. O "é" (233) vira
11101001, o "ç" (231) vira11100111, o "ã" (227) vira11100011. Esses valores são os mesmos da antiga tabela Latin-1 (ISO 8859-1). - Em UTF-8, as mesmas letras ocupam dois bytes. O "ç" seria
11000011 10100111e o "é" seria11000011 10101001. Se o seu professor ou o seu exercício pede UTF-8, o resultado desta ferramenta vai ser diferente para letras acentuadas. Para texto sem acento, os dois dão exatamente o mesmo resultado. - Caracteres acima de 255, como o chinês "中" (20013), saem como um grupo maior que 8 bits:
100111000101101. - Emoji saem como dois grupos de 16 bits (o par substituto do UTF-16). O "😀" vira
1101100000111101 1101111000000000.
Para o caminho de volta, a ferramenta só aceita grupos de exatamente 8 bits. Por isso, texto com acentos vai e volta sem problema, mas chinês e emoji não voltam.
Exemplo prático, byte por byte
Vamos destrinchar Hi!. São três caracteres, todos dentro do ASCII, então três bytes.
H → ASCII 72 → binário 01001000
i → ASCII 105 → binário 01101001
! → ASCII 33 → binário 00100001
Para passar de decimal para binário, pergunte: "quais potências de 2 somadas dão este número?" Para 72, é 64 + 8, então as posições 6 e 3 (contando a partir do 0, da direita para a esquerda) são 1, e o resto é 0. Escrito: 0-1-0-0-1-0-0-0. Complete até um byte inteiro colocando um 0 na frente se precisar, e você tem 01001000.
Para 105: 64 + 32 + 8 + 1 = 105. São as posições 6, 5, 3 e 0. Escrito: 01101001.
Para 33: 32 + 1 = 33. Posições 5 e 0. Escrito: 00100001.
O conversor faz isso com cada caractere do texto e junta os bytes com espaços. Para textos maiores, o princípio é o mesmo, só aumenta.
Caracteres comuns e seus binários
Uma referência rápida dos caracteres que as pessoas mais procuram:
| Caractere | Decimal | Binário (8 bits) | Observações |
|---|---|---|---|
| Espaço | 32 | 00100000 | Sim, espaço é um byte de verdade |
| ! | 33 | 00100001 | Primeira pontuação imprimível |
| 0 | 48 | 00110000 | O caractere zero, não o número zero |
| 9 | 57 | 00111001 | Os dígitos vão de 48 a 57, em ordem |
| A | 65 | 01000001 | A maiúsculo |
| Z | 90 | 01011010 | Última letra maiúscula |
| a | 97 | 01100001 | Minúscula, 32 acima da maiúscula |
| z | 122 | 01111010 | Última letra minúscula |
| ç | 231 | 11100111 | Nesta ferramenta; em UTF-8 são 2 bytes |
| Quebra de linha (\n) | 10 | 00001010 | Quebra de linha no Linux e no Mac |
| Tab (\t) | 9 | 00001001 | Tabulação horizontal |
Repare no padrão: as maiúsculas de A a Z ocupam de 65 a 90, as minúsculas de a a z ocupam de 97 a 122, e a diferença entre elas é exatamente 32. É por isso que inverter o bit 5 de qualquer letra troca maiúscula por minúscula, e é por isso que programadores das antigas às vezes faziam essa troca com uma única operação XOR.
Os dígitos de 0 a 9 ocupam de 48 a 57, e é por isso que subtrair 48 de um caractere de dígito dá o valor numérico. '7' - 48 = 7. Útil quando você lê números caractere por caractere em código de baixo nível.
Como funciona o UTF-8, na prática
Mesmo que esta ferramenta não use UTF-8, vale entender o padrão que o resto da web usa. No UTF-8, uma letra sem acento ocupa um byte. Uma letra acentuada ocupa dois. Um caractere chinês ocupa três. Um emoji normalmente ocupa quatro.
O "é" tem ponto de código 233. Em teoria cabe em 8 bits, mas o UTF-8 reserva o bit mais alto (qualquer byte que começa com 1) para sequências de vários bytes. Então o "é" vira dois bytes: 11000011 10101001. O 110 no começo do primeiro byte quer dizer "aqui começa um caractere de 2 bytes", e o 10 no começo do segundo quer dizer "sou uma continuação".
O "中" (chinês para "meio") tem ponto de código 20013, que precisa de 15 bits, demais para 2 bytes depois do espaço que o UTF-8 usa para sinalização. Ele vira três bytes: 11100100 10111000 10101101. 1110 no começo do primeiro byte, 10 no começo do segundo e do terceiro.
O emoji "😀" tem ponto de código 128512, que precisa de 17 bits. O UTF-8 usa quatro bytes: 11110000 10011111 10011000 10000000. 11110 no começo, depois três bytes de continuação.
É por isso que um texto de 100 caracteres em inglês cabe em 100 bytes, mas o mesmo tamanho em chinês precisa de 300, e uma mensagem cheia de emoji pode chegar a 400. A contagem de caracteres na tela e a contagem de bytes na transmissão são números diferentes em qualquer texto fora do ASCII.
O caminho inverso: de binário para texto
Cole uma sequência de bytes em Binary Input e clique em Convert to Text. Separe os bytes com espaço: a ferramenta lê cada grupo separado por espaço e só aceita grupos de exatamente 8 zeros e uns. Uma sequência corrida, sem espaços, não é lida.
Um grupo inválido (com 7 ou 9 bits, com outro caractere no meio, separado por quebra de linha) é simplesmente ignorado, sem aviso. Se a frase decodificada sair com letras faltando, procure o byte que foi pulado: quase sempre é um grupo com um bit a mais ou a menos, ou um 0 trocado por O na digitação.
Se você precisa decodificar binário vindo de outra fonte, o Decodificador Binário é outra ferramenta só para esse caminho.
Outras ferramentas de codificação
Binário é uma base numérica entre várias. Estas ferramentas cobrem as mais comuns:
- Conversor de Binário para Decimal: para ir da base 2 para a base 10 direto, sem a camada de caracteres. Útil quando você trabalha com números puros (máscaras de rede, flags de bits) e não com texto.
- Conversor de Bases Numéricas: converte entre binário, octal, decimal e hexadecimal num lugar só.
- Codificador/Decodificador Base64: para levar dados binários por canais que só aceitam texto (e-mail, JSON, URLs).
- Gerador de Hash MD5: gera uma "impressão digital" de tamanho fixo de qualquer entrada. É diferente de codificar (que é reversível): hash é de mão única.
- Gerador SHA-256: o hash criptográfico moderno, usado de Bitcoin a certificados TLS.
Perguntas frequentes
Por que 8 bits por caractere e não 7?
O ASCII tem tecnicamente 7 bits, mas os bytes no hardware moderno têm 8. A convenção é completar o ASCII até um byte inteiro com um zero na frente: facilita o alinhamento e corresponde ao jeito como o byte fica na memória. O conversor segue essa convenção.
O que acontece se eu colar texto com acentos ou emoji?
Letras acentuadas e o ç viram um byte cada, com o valor da tabela Latin-1 (o "ç" vira 11100111). Isso é diferente do UTF-8, em que essas letras ocupam dois bytes. Caracteres acima de 255, como chinês, viram grupos com mais de 8 bits, e emoji viram dois grupos de 16 bits.
Meu texto é enviado para algum servidor?
Não. A conversão roda inteira no seu navegador. Nada passa pela rede. Fechou a aba, foi tudo junto.
Posso colar um parágrafo inteiro ou só alguns caracteres?
Os dois. O conversor trata trechos curtos e parágrafos inteiros do mesmo jeito.
Como ler um binário na mão?
Cada bit é uma potência de 2. Da direita para a esquerda, as posições valem 1, 2, 4, 8, 16, 32, 64, 128. Some as potências onde tem 1. Para 01001000: 64 + 8 = 72, que é o código ASCII do H. Treine com algumas palavras curtas e o padrão gruda.
Qual a diferença entre ASCII e UTF-8?
O ASCII cobre 128 caracteres com 7 bits. O UTF-8 cobre todos os caracteres do Unicode (cerca de 150 mil) usando de 1 a 4 bytes por caractere. O UTF-8 é compatível com o ASCII: qualquer texto só com ASCII tem os mesmos bytes nos dois. Para texto sem acento, o resultado desta ferramenta é igual ao de um conversor UTF-8.
Por que meu binário não volta para o mesmo texto?
Três motivos comuns: um grupo não tem exatamente 8 bits, os bytes estão separados por quebra de linha ou sem separação em vez de espaço, ou o binário veio de um conversor UTF-8 e tem letras acentuadas (dois bytes por letra, que aqui viram dois caracteres estranhos, como "ç" no lugar de "ç"). Caracteres que viraram grupos com mais de 8 bits, como emoji, também não voltam.