Conversor de ASCII
Converta texto em códigos de caracteres separados por espaços ou transforme códigos decimais de volta em texto. Introduza o seu conteúdo e escolha Para ASCII ou Para Texto.
Conversor de Texto para Código ASCII
Fórmula do Conversor de ASCII
Onde:
- \(c_i\) — uma unidade de código UTF-16 do texto.
- \(a_i\) — o seu valor numérico decimal.
- \(i\) — a posição da unidade de código na entrada.
Para ASCII devolve o valor decimal de cada unidade de código UTF-16, separado por espaços. Para Texto converte cada número inteiro decimal fornecido de volta numa unidade de código UTF-16; a operação de módulo descreve como são tratados os números inteiros válidos fora do intervalo 0–65535.
Conversor de ASCII – Exemplo de Cálculo
Exemplo: introduza Hi! como Conteúdo e selecione Para ASCII. Os caracteres têm os valores decimais 72, 105 e 33.
\[ \text{Hi!}\longrightarrow 72\quad 105\quad 33 \]
Resultado: 72 105 33. Para reverter a conversão, selecione Para Texto e introduza 72 105 33; o resultado é Hi!.
Como usar o Conversor de ASCII
- Introduza os seus dados em Conteúdo. Para Para ASCII, escreva o texto que pretende converter. Para Para Texto, introduza códigos decimais separados por espaços ou outro espaço em branco, como
72 105 33. - Escolha o Tipo: Para ASCII para a conversão de texto em números, ou Para Texto para a conversão de números em texto.
- Leia o valor convertido em Resultado. Pode copiá-lo para usar noutro lugar.
O campo Conteúdo começa vazio, por isso introduza algo antes de converter. Para Texto remove os espaços em branco à volta da lista de códigos e trata os espaços em branco entre códigos como separadores. Para representar um espaço no texto descodificado, inclua o código 32.
O que significam os códigos
A tabela ASCII atribui números a 128 caracteres e códigos de controlo, numerados de 0 a 127. Exemplos comuns incluem A como 65, a como 97 e o carácter de espaço como 32. Converter letras familiares para os seus códigos numéricos pode ajudá-lo a inspecionar texto, verificar dados trocados entre programas ou compreender como os caracteres são representados.
Apesar do nome, este conversor não se limita aos valores ASCII. No modo Para ASCII, ele usa a representação UTF-16 do JavaScript: pega em cada unidade de código UTF-16 e imprime o seu valor decimal. Os caracteres ASCII padrão produzem os seus números ASCII habituais. Muitos outros caracteres produzem valores acima de 127, por isso esses valores não devem ser descritos como códigos ASCII padrão.
No modo Para Texto, o conversor lê cada entrada separada por espaços em branco como um número inteiro decimal e cria a partir dela uma unidade de código UTF-16. Os códigos de 0 a 127 correspondem ao ASCII padrão; outros valores válidos de unidades de código podem produzir caracteres não ASCII. O resultado também pode conter caracteres invisíveis, como uma quebra de linha, por isso a sua aparência pode não revelar todos os códigos que contém.
Esta distinção é especialmente importante para os emojis e alguns símbolos menos comuns. Eles são representados por duas unidades de código UTF-16, por isso Para ASCII devolve dois números em vez de um único ponto de código Unicode. Se precisar de bytes ou de outra codificação, este resultado não é uma lista de bytes UTF-8.
Pressupostos e dicas práticas
- Use números decimais para Para Texto. Por exemplo,
65 66 67produzABC. O conversor não lê notação hexadecimal nem binária como um formato de entrada dedicado. - Separe os códigos com espaços em branco. O conversor não usa vírgulas como separadores, por isso evite entradas como
65,66. - Para incluir um espaço, uma tabulação ou uma quebra de linha no texto descodificado, use
32,9ou10, respetivamente. Os espaços escritos entre códigos numéricos apenas separam as entradas. - Use códigos inteiros válidos para obter resultados previsíveis. Esta ferramenta não valida cada entrada antes da conversão: valores mal formados podem produzir um carácter inesperado ou invisível. Números inteiros fora do intervalo de unidades de código UTF-16 são ajustados (wrap) para um valor entre 0 e 65535.
- Copie o resultado se os caracteres invisíveis o tornarem difícil de inspecionar na página. Para uma verificação independente da quantidade de texto introduzida, experimente o Contador de Caracteres.
Se estiver a trabalhar com representações de números em vez de códigos de caracteres, o Conversor Hexadecimal e o Conversor Binário lidam com outros formatos numéricos. Os resultados deles não são intercambiáveis com os códigos decimais de caracteres separados por espaços deste conversor sem uma etapa adicional de interpretação.
Valores ASCII comuns
| Carácter ou controlo | Código decimal |
|---|---|
| Espaço | 32 |
| Ponto de exclamação (!) | 33 |
| Algarismo 0 | 48 |
| A maiúsculo | 65 |
| a minúsculo | 97 |
| Alimentação de linha (line feed) | 10 |
A tabela mostra valores decimais, correspondentes aos números que este conversor produz para estes caracteres ASCII. A alimentação de linha é um carácter de controlo: cria uma quebra de linha em vez de uma letra visível.
Perguntas frequentes
Como posso encontrar códigos ASCII manualmente?
Use uma tabela ASCII para obter um valor de partida e depois conte para a frente. O A maiúsculo é 65, portanto C é 67; o a minúsculo é 97, portanto c é 99. Os algarismos começam em 48 para o 0, o que faz o 7 ser igual a 55. Estes atalhos funcionam para os caracteres ASCII padrão, não para símbolos Unicode arbitrários.
Que intervalo de valores ASCII devo esperar para letras e algarismos?
Os valores ASCII padrão vão de 0 a 127. As letras maiúsculas ocupam 65–90, as minúsculas 97–122 e os algarismos 48–57. Não existe um valor “bom”: o número identifica um carácter em vez de medir a sua qualidade. Valores acima de 127 podem ser resultados válidos deste conversor, mas não são valores ASCII padrão.
Porque é que uma letra acentuada tem um valor de byte UTF-8 diferente?
Este conversor reporta unidades de código UTF-16, não bytes codificados. Por exemplo, é produz aqui o valor decimal 233, enquanto a sua codificação UTF-8 consiste em dois bytes, 195 e 169. Ambas as representações descrevem o mesmo carácter de formas diferentes. Use um codificador UTF-8 se precisar de bytes para um ficheiro ou uma mensagem de rede.
Porque é que há mais números do que caracteres visíveis?
Um carácter visível nem sempre corresponde a uma unidade de código UTF-16. Um emoji pode produzir dois números, enquanto uma letra seguida de um acento combinante pode produzir números separados, embora pareça um único carácter. Os caracteres de fim de linha também podem estar presentes sem aparecer como símbolos visíveis. Conte o resultado como unidades de código, não necessariamente como caracteres que o leitor vê.
O que acontece se eu introduzir um número negativo ou um código inválido?
Os números inteiros negativos são ajustados (wrap) para o intervalo de unidades de código UTF-16: −1 torna-se 65535, por exemplo. O conversor não valida estritamente as entradas; ele interpreta o início de cada elemento como um número inteiro decimal. Assim, `65abc` pode tornar-se A, enquanto um elemento sem nenhum número interpretável pode tornar-se um carácter nulo invisível. Use apenas números inteiros simples para obter resultados fiáveis.
Porque é que as quebras de linha às vezes correspondem a 10 e outras vezes a 13 10?
Sistemas diferentes representam os fins de linha de formas diferentes. Uma quebra de linha ao estilo Unix é normalmente uma alimentação de linha, código 10. Um fim de linha ao estilo Windows usa habitualmente retorno de carro seguido de alimentação de linha, códigos 13 10. Se estiver a comparar texto convertido de fontes diferentes, verifique ambos os códigos; o resultado apresentado pode parecer o mesmo apesar dos valores subjacentes diferentes.