Utilia

Texto para binário, hexadecimal e ASCII

Converte texto em códigos binários, hexadecimais, decimais ou octais e vice-versa, com bytes UTF-8 ou pontos de código Unicode e tabela de caracteres.

Caracteres
0
Pontos de código
0
Bytes UTF-8
0
Tabela de caracteres
CarácterPonto de códigoDecimalUTF-8 (hex)UTF-8 (binário)

Como usar o conversor de texto para binário

  1. Escreve ou cola o teu texto na caixa de entrada e clica em Texto → códigos. O resultado aparece por baixo e atualiza-se enquanto escreves.
  2. Escolhe o Formato: Binário (base 2), Hexadecimal (base 16), Decimal (base 10) ou Octal (base 8).
  3. Em Os códigos representam, mantém Bytes UTF-8 (compatível com ASCII) para o resultado habitual de «texto para binário», ou escolhe Pontos de código Unicode para obteres um número por carácter.
  4. Escolhe um Separador (Espaço, Nenhum, Vírgula ou Nova linha) e assinala Adicionar prefixo (0b, 0o, 0x) se precisares dos códigos escritos como as linguagens de programação os esperam.
  5. Para fazer o caminho inverso, cola os códigos e clica em Códigos → texto. A ferramenta adivinha o formato quando mudas de sentido, e podes corrigi-lo em Formato.

Copiar copia o resultado, e Usar o resultado como entrada passa o resultado para a caixa de entrada e inverte o sentido, uma forma rápida de verificar a conversão de ida e volta. A Tabela de caracteres lista cada carácter com o seu ponto de código, o valor decimal e os bytes UTF-8 em hexadecimal e em binário.

ASCII, Unicode e UTF-8

Os computadores guardam o texto como números. O ASCII, definido nos anos 60, atribui um número de 0 a 127 às letras inglesas, aos algarismos, à pontuação e a alguns caracteres de controlo: «H» é 72, ou seja, 01001000 em binário e 48 em hexadecimal. O ASCII não tem lugar para «é», «ç», «ã», «€» nem emojis, por isso o texto atual usa o Unicode, que dá a cada carácter um ponto de código, escrito como U+00E9 para «é».

O UTF-8 é a forma como quase todas as páginas web e ficheiros guardam esses pontos de código em bytes. A sua grande vantagem é a compatibilidade: os 128 caracteres ASCII mantêm um único byte, por isso «Hello» dá exatamente o mesmo binário em ASCII e em UTF-8. Os outros caracteres ocupam 2 a 4 bytes: «é» é C3 A9 (dois bytes), «€» é E2 82 AC (três) e 😀 é F0 9F 98 80 (quatro). A ferramenta indica quantos caracteres ficam fora do ASCII, e os contadores mostram o número de Caracteres, Pontos de código e Bytes UTF-8. Estes valores podem ser diferentes: 👍🏽 é um carácter visível formado por dois pontos de código e oito bytes.

Descodificar códigos em texto

Ao descodificar, os códigos podem estar separados por espaços, vírgulas, pontos e vírgulas ou quebras de linha. Os prefixos como 0b, 0x, \x, U+ e as entidades HTML como H ou H são removidos automaticamente. Os bytes em binário e hexadecimal também podem ser colados sem separadores: 0100100001101001 é dividido em grupos de 8 bits, e c3a9 em pares de algarismos hexadecimais.

A ferramenta verifica cada código e diz-te exatamente qual está errado: um algarismo que não pertence à base escolhida, um byte acima de 255, um grupo que não se divide por igual ou um ponto de código acima de U+10FFFF. Se os bytes forem números válidos mas não formarem UTF-8 válido (por exemplo C3 seguido de 28), o texto é mostrado na mesma, com � no lugar da sequência inválida, e uma mensagem explica porquê.

Exemplos

  • «Hi» em binário: 01001000 01101001
  • «Hi» em hexadecimal: 48 69
  • «Hi» em decimal: 72 105
  • «é» em bytes UTF-8 hexadecimais: C3 A9; como ponto de código: E9

Perguntas frequentes

Qual é a diferença entre ASCII e binário?

O ASCII é uma tabela que atribui números a caracteres. O binário é apenas uma forma de escrever esses números com 0 e 1. Converter texto em binário significa procurar o número de cada carácter e escrevê-lo em base 2.

Porque é que o «é» ocupa 16 bits em vez de 8?

Em UTF-8, só os 128 caracteres ASCII cabem num byte. As letras acentuadas precisam de dois bytes, por isso «é» passa a 11000011 10101001. Com Pontos de código Unicode, «é» é o número único 11101001 (233).

Posso descodificar binário sem espaços?

Sim, para bytes em binário ou hexadecimal, desde que o comprimento seja múltiplo de 8 bits ou de 2 algarismos hexadecimais. Os códigos decimais precisam de separador, a não ser que cada um tenha exatamente 3 algarismos.

Que opção corresponde a «texto para hex» em programação?

Bytes UTF-8 em hexadecimal. Dá o mesmo resultado que codificar uma cadeia de caracteres em UTF-8 em Python, JavaScript ou na maioria das outras linguagens.

O meu texto é enviado?

Não. A conversão é feita inteiramente no teu navegador; nada é enviado pela rede.