Conversor de binário para texto
Converta instantaneamente entre binário e texto.
Uma breve história da representação binária
O binário é a língua fundamental dos computadores, cada caractere, número e instrução é, em última instância, representado como uma sequência de 0s e 1s, mas a ideia precede o computador em 250 anos. Gottfried Wilhelm Leibniz escreveu a "Explication de l'Arithmétique Binaire" (apresentada à Academia Francesa de Ciências em 1703, impressa nas Mémoires em 1705), a primeira descrição formal ocidental da aritmética binária. Leibniz se inspirou em parte nos trigramas e hexagramas do I Ching chinês, que codificam cada padrão divinatório como uma pilha de seis linhas inteiras ou partidas (essencialmente binário de 6 bits). O An Investigation of the Laws of Thought de George Boole (1854) deu ao binário os alicerces algébricos (E, OU, NÃO, ou-exclusivo) que ainda sustentam todo circuito digital. A dissertação de mestrado de Claude Shannon no MIT, "A Symbolic Analysis of Relay and Switching Circuits" (apresentada em agosto de 1937), deu o salto que conectou a álgebra booleana à engenharia elétrica: cada circuito de relés e chaves corresponde a uma expressão booleana, e vice-versa. A dissertação de Shannon é amplamente considerada a dissertação de mestrado mais influente do século XX. Os primeiros computadores eletrônicos misturavam decimal (o ENIAC, 1945, usava contadores decimais internamente) e binário (a Manchester Baby, junho de 1948, primeiro computador binário com programa armazenado; o EDSAC, maio de 1949, o primeiro prático); no início dos anos 1950, o binário era o padrão universal.
O byte de 8 bits chegou depois. A palavra "byte" foi cunhada por Werner Buchholz na IBM em junho de 1956 durante o projeto do IBM Stretch, originalmente com várias larguras (6, 8, 9 bits). O byte de 8 bits foi padronizado pela IBM com o anúncio do System/360 em 7 de abril de 1964; daí em diante, "um byte" passou a significar 8 bits em todo o setor. (A literatura mais antiga às vezes esclarece com "octeto" para evitar ambiguidade, especificações da IETF ainda preferem "octeto" por essa razão.)
Codificações de caracteres, transformar letras em bits
O binário é a camada de fundo; a camada acima é a codificação de caracteres que mapeia letras e símbolos para padrões de bits específicos. O código Baudot (Émile Baudot, inventado em 1870, patenteado em 1874) foi a primeira codificação de texto binária amplamente usada, 5 bits por caractere, empregada por teleimpressores e redes Telex por mais de um século. 5 bits dão apenas 32 códigos, o que obrigou o código Baudot a usar caracteres de troca (um para letras, outro para números e pontuação) para ampliar o conjunto endereçável. O ASCII (American Standard Code for Information Interchange) foi publicado como ANSI X3.4-1963 em 17 de junho de 1963 pela American Standards Association. O ASCII usa 7 bits para codificar 128 caracteres: códigos de controle (0-31), pontuação e dígitos (32-64), maiúsculas (65-90), mais pontuação (91-96), minúsculas (97-122), pontuação final (123-127). A largura de 7 bits foi escolhida pela compatibilidade com hardware telegráfico de fita perfurada. O ASCII tornou-se a codificação anglófona dominante pelas duas décadas seguintes; a revisão canônica ANSI X3.4-1986 é essencialmente idêntica e é o que as pessoas querem dizer hoje quando falam "ASCII".
A família ASCII estendido / ISO 8859 (ISO 8859-1 publicado em 1987, o resto ao longo dos anos 1990) preencheu os 128 caracteres altos de um byte de 8 bits com alfabetos regionais: Latin-1 cobriu as línguas da Europa ocidental, Latin-2 as do leste europeu, Latin-5 o turco, Cirílico-1, Grego-1, Árabe-1, Hebraico-1, Tailandês-1. Isso produziu quinze codificações de 8 bits incompatíveis entre si: 0xE9 significava é em Latin-1, mas um caractere diferente em Cirílico-1, indefinido em ASCII estrito, e ainda outro caractere em Mac Roman. O descompasso produziu a famosa condição mojibake (japonês: 文字化け, "transformação de caracteres", texto com aparência corrompida por descompasso de codificação).
O projeto Unicode nasceu como resposta. O Consórcio Unicode foi constituído em 3 de janeiro de 1991; Unicode 1.0 foi publicado em outubro de 1991 com cerca de 7.000 caracteres. Em Unicode 16.0 (lançado em 10 de setembro de 2024), o padrão cobre 154.998 caracteres em 168 escritas. Unicode é um sistema de pontos de código, um identificador numérico único para cada caractere, mas não é diretamente uma codificação binária. Existem várias codificações de Unicode: UTF-32 (4 bytes por caractere, largura fixa), UTF-16 (2 ou 4 bytes, variável) e a dominante na web moderna: UTF-8.
UTF-8 foi projetado por Ken Thompson com Rob Pike em um jogo americano de um diner em New Jersey por volta de 2 de setembro de 1992; o Plan 9 já rodava sobre ele em 8 de setembro. UTF-8 é de comprimento variável: 1 byte para caracteres ASCII (U+0000 a U+007F), 2 bytes para U+0080 a U+07FF, 3 bytes para U+0800 a U+FFFF, 4 bytes para U+10000 a U+10FFFF. Os bits altos de cada byte indicam sua posição numa sequência multi-byte (0xxxxxxx = ASCII de 1 byte, 110xxxxx = primeiro byte de sequência de 2 bytes, 10xxxxxx = byte de continuação, etc.), o que torna o UTF-8 autossincronizante: você pode começar a decodificar a partir de qualquer posição e encontrar a próxima fronteira de caractere olhando os próximos bytes. UTF-8 também é retrocompatível com ASCII: todo arquivo ASCII é um arquivo UTF-8 válido. Em 2026, a W3Techs informa que aproximadamente 98,9 % de todas as páginas web declaram UTF-8 como sua codificação, é, com folga, a codificação textual do mundo.
Exemplos binários em ASCII
Alguns caracteres ASCII representativos em sua forma binária de 8 bits (com o 0 inicial, já que o ASCII é tecnicamente de 7 bits, mas alinhado ao byte):
- 'A' (A maiúsculo) = decimal 65 =
01000001 - 'a' (a minúsculo) = decimal 97 =
01100001(nota: difere de 'A' em exatamente um bit, o bit 5, por isso o truque de conversão de caixa via XOR com 0x20 funciona) - '0' (dígito zero) = decimal 48 =
00110000 - '9' (dígito nove) = decimal 57 =
00111001 - ' ' (espaço) = decimal 32 =
00100000 - '\n' (nova linha / line feed) = decimal 10 =
00001010 - '!' (ponto de exclamação) = decimal 33 =
00100001
"Hello" em ASCII vira 01001000 01100101 01101100 01101100 01101111, cinco bytes, um por caractere. Em UTF-8 é idêntico, porque cada caractere ASCII também é um caractere UTF-8 válido de 1 byte. "Café" em UTF-8 é 01000011 01100001 01100110 11000011 10101001, quatro caracteres, mas cinco bytes, porque é (U+00E9) precisa de dois bytes (11000011 10101001) sob UTF-8.
A codificação multi-byte do UTF-8, mecanicamente
As regras de codificação do UTF-8 usam padrões específicos de bits altos para indicar a posição do byte. 1 byte (faixa ASCII U+0000 a U+007F): 0xxxxxxx, o bit alto é 0, os 7 bits restantes são o ponto de código. 2 bytes (U+0080 a U+07FF): 110xxxxx 10xxxxxx, o primeiro byte começa com 110, o byte de continuação com 10; os bits x se combinam para dar o ponto de código de 11 bits. 3 bytes (U+0800 a U+FFFF): 1110xxxx 10xxxxxx 10xxxxxx, o primeiro byte começa com 1110, dois bytes de continuação; ponto de código de 16 bits. 4 bytes (U+10000 a U+10FFFF): 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx, cobre todo o espaço Unicode, incluindo emojis. A letra russa п (U+043F) precisa de 2 bytes em UTF-8 (11010000 10111111); o caractere chinês 中 (U+4E2D) precisa de 3 bytes; o emoji 🎉 (U+1F389) precisa de 4 bytes. Codificar texto como binário UTF-8 sempre produz uma sequência válida; decodificar exige verificar se os bytes de continuação têm o prefixo 10 (caso contrário, a entrada é UTF-8 inválido e o decodificador costuma substituir a sequência ruim pelo caractere de substituição U+FFFD).
Convenções de notação
O texto binário aparece na natureza em várias convenções, todas se referindo aos mesmos bytes subjacentes. Bytes separados por espaços: 01001000 01100101 01101100 01101100 01101111, a forma mais legível, comum em tutoriais e enigmas. Contínuo sem espaços: 0100100001100101011011000110110001101111, mais compacto, exige do leitor saber que as fronteiras de byte caem a cada 8 dígitos. Separado por vírgulas: 01001000,01100101,01101100,01101100,01101111, comum em dados de teste em CSV. Pares hexadecimais (Base16): 48 65 6c 6c 6f, os mesmos bytes mostrados com dois dígitos hex cada em vez de oito binários; bem mais compacto e comum em ferramentas voltadas a programadores (hexdump, editores hex). Decimal: 72 101 108 108 111, o valor inteiro subjacente de cada byte. Esta ferramenta aceita entrada binária separada por espaços, vírgulas ou contínua para conversão binário-para-texto; produz binário de 8 bits separado por espaços para a conversão texto-para-binário.
Usos comuns
- Educação em ciência da computação. Representações binárias são fundamentais em CS101, alunos aprendem o que é um "byte" codificando seu nome e lendo de volta.
- Enigmas com mensagens ocultas. Salas de fuga, coordenadas de geocaching, pistas de ARG (alternate reality game), desafios capture-the-flag, todos usam texto codificado em binário como cifra comum porque é instantaneamente reconhecível como "binário", mas exige que o leitor saiba a conversão.
- Esteganografia. Esconder mensagens à vista codificando-as como binário que parece ruído, uma cadeia binária nos bits menos significativos de uma imagem, ou escondida nos espaços ao final das linhas de um e-mail.
- Depuração de problemas de codificação. Quando "Café" aparece como "Café" ou "€" em vez de "€", os bytes revelam o que aconteceu, uma sequência UTF-8 foi interpretada como Latin-1 ou vice-versa. Olhar a representação binária real torna o descompasso de codificação evidente.
- Análise forense. Recuperar texto de arquivos corrompidos, backups parciais ou armazenamento danificado muitas vezes significa olhar os bytes brutos e decodificá-los à mão.
- Aprender programação de baixo nível. Operações bit a bit, deslocamento de bits, construção de máscaras, tudo se torna intuitivo quando você consegue ver a representação binária dos valores.
- Arte e tatuagens binárias. "Eu te amo" em binário como presente de casamento, uma camiseta no estilo XKCD, uma tatuagem de número binário. A estética dos puros 0s e 1s tem uma subcultura pequena, mas real.
Pegadinhas de codificação que vale conhecer
Mojibake por descompasso de codificação. A mesma sequência de bytes interpretada sob codificações diferentes produz textos diferentes (e geralmente confusos). 0xE9 é é em Latin-1, mas o início de uma sequência UTF-8 inválida (todo byte ≥ 0x80 deve ser ou um byte de continuação ou o início de uma sequência multi-byte). Quando um arquivo UTF-8 é aberto como Latin-1, cada caractere UTF-8 multi-byte vira 2-4 caracteres Latin-1 confusos, o modo de falha canônico "Café" → "Café". BOM (marca de ordem de bytes). Uma sequência de 2-3 bytes no início absoluto de um arquivo Unicode que indica a ordem dos bytes: UTF-16 little-endian começa com FF FE, UTF-16 big-endian com FE FF, BOM UTF-8 (raramente usado, às vezes chamado "UTF-8 com BOM") com EF BB BF. O BOM ajuda a distinguir codificações Unicode, mas só é obrigatório para UTF-16 e UTF-32; a IETF desaconselha adicioná-lo a arquivos UTF-8 porque quebra ferramentas que esperam ver conteúdo normal no início. Endianness importa para UTF-16 e UTF-32 (que ordenam os bytes de uma unidade de código multi-byte), mas não para UTF-8 (codificado em fluxo de bytes, a ordem é definida pela spec, não pelo hardware).
Tabela de referência ASCII
Privacidade: por que apenas no navegador importa mesmo aqui
Conversões binárias parecem inócuas, mas o texto que está sendo convertido é exatamente o tipo de coisa em que privacidade importa: enigmas com mensagens ocultas entre amigos, frases confidenciais codificadas para experimentos de esteganografia, strings sensíveis sendo depuradas por problemas de codificação ou, simplesmente, qualquer coisa em que o leitor espera que o binário seja uma representação privada. Esta ferramenta roda inteiramente no seu navegador via JavaScript, verifique na aba Network das DevTools enquanto converte, ou coloque a página off-line (modo avião) depois de carregar e o conversor segue funcionando. Seguro para pistas de enigmas, strings sensíveis de depuração ou qualquer texto que você não queira ver copiado no disco rígido de um estranho.
Perguntas frequentes
Qual formato deve ter a entrada binária?
Digite valores binários de 8 bits separados por espaços (ex. "01001000 01101001"). A ferramenta também aceita valores sem espaços ou com outros separadores.
Suporta emojis ou caracteres não latinos?
A direção texto→binário suporta qualquer caractere Unicode · cada caractere é expandido em sua representação binária completa em código UTF-8.
Por que 8 dígitos por caractere?
Cada grupo de 8 dígitos binários (bits) representa um byte. O ASCII usa 7 bits (valores 0-127), mas é comumente exibido em 8 bits com um zero à esquerda.
De onde vem o binário, afinal?
A ideia matemática precede o computador em 250 anos. Gottfried Wilhelm Leibniz escreveu a primeira descrição formal ocidental da aritmética binária em 1703 ("Explication de l'Arithmétique Binaire"), inspirada em parte nos hexagramas do I Ching chinês. As Laws of Thought de George Boole (1854) deram ao binário seus alicerces algébricos (E, OU, NÃO). A dissertação de Claude Shannon no MIT (1937) conectou a álgebra booleana aos circuitos elétricos de relés, o momento fundador da eletrônica digital. Os primeiros computadores binários eletrônicos vieram no fim dos anos 1940 (Manchester Baby junho de 1948, EDSAC maio de 1949).
Qual a diferença entre ASCII e UTF-8?
ASCII (1963) é uma codificação de 7 bits e largura fixa cobrindo 128 caracteres, alfabeto inglês básico, dígitos, pontuação comum, códigos de controle. UTF-8 (Thompson + Pike, 1992) é uma codificação de comprimento variável de todo o padrão Unicode (~155.000 caracteres a partir de Unicode 16.0 em setembro de 2024). UTF-8 é retrocompatível com ASCII: toda sequência de bytes ASCII válida também é UTF-8 válido. A diferença importa acima da faixa ASCII, é, 中, 🎉 todos precisam de múltiplos bytes em UTF-8. Em 2026, ~98,9 % das páginas web declaram UTF-8 como sua codificação (W3Techs).
Minhas conversões são enviadas para algum lugar?
Não. A conversão roda inteiramente no seu navegador via JavaScript. O texto e o binário que você cola nunca cruzam a rede, verifique na aba Network das DevTools enquanto clica em Converter, ou coloque a página off-line (modo avião) depois de carregar e a ferramenta segue funcionando.