Tabela ASCII — Decimal, Hex, Binário e Octal
Consulte todos os 128 códigos ASCII (0–127) com suas representações decimal, hexadecimal, octal e binária. Os caracteres de controle (0–31, 127) são destacados e etiquetados com suas abreviações padrão e nomes completos. Filtre para mostrar apenas caracteres imprimíveis ou apenas códigos de controle, e pesquise por número decimal, valor hex ou caractere.
| Dec | Hex | Car. | Descrição |
|---|---|---|---|
| 0 | 0x00 | NUL | NUL — Null |
| 1 | 0x01 | SOH | SOH — Start of Heading |
| 2 | 0x02 | STX | STX — Start of Text |
| 3 | 0x03 | ETX | ETX — End of Text |
| 4 | 0x04 | EOT | EOT — End of Transmission |
| 5 | 0x05 | ENQ | ENQ — Enquiry |
| 6 | 0x06 | ACK | ACK — Acknowledge |
| 7 | 0x07 | BEL | BEL — Bell |
| 8 | 0x08 | BS | BS — Backspace |
| 9 | 0x09 | HT | HT — Horizontal Tab |
| 10 | 0x0A | LF | LF — Line Feed |
| 11 | 0x0B | VT | VT — Vertical Tab |
| 12 | 0x0C | FF | FF — Form Feed |
| 13 | 0x0D | CR | CR — Carriage Return |
| 14 | 0x0E | SO | SO — Shift Out |
| 15 | 0x0F | SI | SI — Shift In |
| 16 | 0x10 | DLE | DLE — Data Link Escape |
| 17 | 0x11 | DC1 | DC1 — Device Control 1 (XON) |
| 18 | 0x12 | DC2 | DC2 — Device Control 2 |
| 19 | 0x13 | DC3 | DC3 — Device Control 3 (XOFF) |
| 20 | 0x14 | DC4 | DC4 — Device Control 4 |
| 21 | 0x15 | NAK | NAK — Negative Acknowledge |
| 22 | 0x16 | SYN | SYN — Synchronous Idle |
| 23 | 0x17 | ETB | ETB — End of Transmission Block |
| 24 | 0x18 | CAN | CAN — Cancel |
| 25 | 0x19 | EM | EM — End of Medium |
| 26 | 0x1A | SUB | SUB — Substitute |
| 27 | 0x1B | ESC | ESC — Escape |
| 28 | 0x1C | FS | FS — File Separator |
| 29 | 0x1D | GS | GS — Group Separator |
| 30 | 0x1E | RS | RS — Record Separator |
| 31 | 0x1F | US | US — Unit Separator |
| 32 | 0x20 | SP — Space | |
| 33 | 0x21 | ! | |
| 34 | 0x22 | " | |
| 35 | 0x23 | # | |
| 36 | 0x24 | $ | |
| 37 | 0x25 | % | |
| 38 | 0x26 | & | |
| 39 | 0x27 | ' | |
| 40 | 0x28 | ( | |
| 41 | 0x29 | ) | |
| 42 | 0x2A | * | |
| 43 | 0x2B | + | |
| 44 | 0x2C | , | |
| 45 | 0x2D | - | |
| 46 | 0x2E | . | |
| 47 | 0x2F | / | |
| 48 | 0x30 | 0 | |
| 49 | 0x31 | 1 | |
| 50 | 0x32 | 2 | |
| 51 | 0x33 | 3 | |
| 52 | 0x34 | 4 | |
| 53 | 0x35 | 5 | |
| 54 | 0x36 | 6 | |
| 55 | 0x37 | 7 | |
| 56 | 0x38 | 8 | |
| 57 | 0x39 | 9 | |
| 58 | 0x3A | : | |
| 59 | 0x3B | ; | |
| 60 | 0x3C | < | |
| 61 | 0x3D | = | |
| 62 | 0x3E | > | |
| 63 | 0x3F | ? | |
| 64 | 0x40 | @ | |
| 65 | 0x41 | A | |
| 66 | 0x42 | B | |
| 67 | 0x43 | C | |
| 68 | 0x44 | D | |
| 69 | 0x45 | E | |
| 70 | 0x46 | F | |
| 71 | 0x47 | G | |
| 72 | 0x48 | H | |
| 73 | 0x49 | I | |
| 74 | 0x4A | J | |
| 75 | 0x4B | K | |
| 76 | 0x4C | L | |
| 77 | 0x4D | M | |
| 78 | 0x4E | N | |
| 79 | 0x4F | O | |
| 80 | 0x50 | P | |
| 81 | 0x51 | Q | |
| 82 | 0x52 | R | |
| 83 | 0x53 | S | |
| 84 | 0x54 | T | |
| 85 | 0x55 | U | |
| 86 | 0x56 | V | |
| 87 | 0x57 | W | |
| 88 | 0x58 | X | |
| 89 | 0x59 | Y | |
| 90 | 0x5A | Z | |
| 91 | 0x5B | [ | |
| 92 | 0x5C | \ | |
| 93 | 0x5D | ] | |
| 94 | 0x5E | ^ | |
| 95 | 0x5F | _ | |
| 96 | 0x60 | ` | |
| 97 | 0x61 | a | |
| 98 | 0x62 | b | |
| 99 | 0x63 | c | |
| 100 | 0x64 | d | |
| 101 | 0x65 | e | |
| 102 | 0x66 | f | |
| 103 | 0x67 | g | |
| 104 | 0x68 | h | |
| 105 | 0x69 | i | |
| 106 | 0x6A | j | |
| 107 | 0x6B | k | |
| 108 | 0x6C | l | |
| 109 | 0x6D | m | |
| 110 | 0x6E | n | |
| 111 | 0x6F | o | |
| 112 | 0x70 | p | |
| 113 | 0x71 | q | |
| 114 | 0x72 | r | |
| 115 | 0x73 | s | |
| 116 | 0x74 | t | |
| 117 | 0x75 | u | |
| 118 | 0x76 | v | |
| 119 | 0x77 | w | |
| 120 | 0x78 | x | |
| 121 | 0x79 | y | |
| 122 | 0x7A | z | |
| 123 | 0x7B | { | |
| 124 | 0x7C | | | |
| 125 | 0x7D | } | |
| 126 | 0x7E | ~ | |
| 127 | 0x7F | DEL | DEL — Delete |
Exibindo 128 de 128 códigos ASCII
Como funciona
O que é ASCII?
ASCII (American Standard Code for Information Interchange) é um padrão de codificação de caracteres publicado originalmente em 1963. Ele define 128 caracteres: 33 caracteres de controle não imprimíveis (códigos 0–31 e 127) e 95 caracteres imprimíveis (códigos 32–126), incluindo letras maiúsculas e minúsculas do inglês, os algarismos 0–9 e os sinais de pontuação mais comuns. O ASCII tornou-se a base de praticamente todas as codificações de texto modernas, incluindo o UTF-8, que é retrocompatível com o ASCII para os primeiros 128 pontos de código.
Cada caractere ASCII recebe um valor inteiro de 7 bits, razão pela qual a tabela termina em 127 (2⁷ − 1). Quando armazenado em um byte de 8 bits, o bit mais significativo é tipicamente 0 para o ASCII padrão. O intervalo ASCII estendido (128–255) não é padronizado pela especificação original e varia de acordo com a página de código — ISO 8859-1, Windows-1252 e codificações semelhantes definem cada uma um conjunto diferente de caracteres para a metade superior do byte.
Caracteres de controle (0–31 e 127)
Os primeiros 32 códigos ASCII e o código 127 são caracteres de controle não imprimíveis herdados das convenções das máquinas de teletipo. A maioria está obsoleta na computação moderna, mas alguns permanecem importantes: o código 9 (HT, tabulação horizontal), o código 10 (LF, avanço de linha ou nova linha no Unix/Linux), o código 13 (CR, retorno de carro, usado nos finais de linha do Windows como CR+LF), o código 27 (ESC, Escape, usado em sequências de escape de terminal) e o código 127 (DEL). Esses caracteres não são renderizados como glifos visíveis.
Em sistemas semelhantes ao Unix, você pode gerar caracteres de controle em um terminal mantendo pressionado Ctrl e pressionando a letra correspondente: Ctrl+A = SOH (1), Ctrl+C = ETX (3, envia sinal de interrupção), Ctrl+D = EOT (4, sinaliza fim da entrada), Ctrl+J = LF (10), Ctrl+M = CR (13), Ctrl+Z = SUB (26, suspende um processo no Unix). Compreender esses códigos é essencial para E/S de baixo nível, sequências de controle de terminal e implementação de protocolos de rede.
ASCII em programação e desenvolvimento web
Em JavaScript, você pode obter o código ASCII de um caractere usando charCodeAt(0): 'A'.charCodeAt(0) retorna 65. Para a conversão inversa, String.fromCharCode(65) retorna 'A'. Em Python, ord('A') retorna 65 e chr(65) retorna 'A'. Em C, os valores char são inteiros e podem ser usados diretamente em operações aritméticas: 'A' + 1 equivale a 'B'.
Os valores ASCII são a base de muitos padrões de programação comuns. A diferença entre letras maiúsculas e minúsculas é sempre 32: 'a' (97) = 'A' (65) + 32. Os algarismos 0–9 ocupam os códigos 48–57; portanto, subtrair 48 do valor ASCII de um caractere dígito fornece seu valor numérico. A codificação de URL representa os caracteres não seguros para URL como %XX, onde XX é o código ASCII em hex, tornando esta tabela indispensável para depurar strings codificadas em URL e cabeçalhos HTTP.
Perguntas frequentes
›Qual é o código ASCII para Enter / nova linha?
O caractere de nova linha (avanço de linha) é o código ASCII 10 (0x0A, LF). No Unix/Linux/macOS, uma nova linha é representada apenas por LF. No Windows, é representada por CR+LF (códigos 13 e 10, ou seja, 0x0D 0x0A). O caractere de retorno de carro é o código 13 (0x0D, CR). Ao escrever código de processamento de texto multiplataforma, sempre trate os dois tipos de final de linha: LF e CR+LF.
›Qual é o código ASCII do caractere espaço?
O caractere espaço é o código ASCII 32 (0x20, SP). É o primeiro caractere imprimível do ASCII. O espaço não separável (usado em HTML como ) não faz parte do ASCII padrão de 7 bits — é o código 160 (0xA0) em ISO 8859-1 e UTF-8 (codificado como 0xC2 0xA0 em UTF-8).
›Qual é a diferença entre ASCII, UTF-8 e Unicode?
O ASCII define 128 caracteres com códigos de 7 bits. O Unicode é um padrão universal que define mais de 140.000 caracteres com pontos de código de até U+10FFFF. O UTF-8 é uma codificação de largura variável do Unicode: codifica os caracteres ASCII (0–127) em um único byte, tornando-o retrocompatível com o ASCII. Caracteres além de 127 usam 2 a 4 bytes no UTF-8. Os sistemas de texto modernos usam UTF-8 ou UTF-16, mas o ASCII permanece importante para cabeçalhos de protocolo, formatos de arquivo e sistemas legados.
›Como encontro o código ASCII de um caractere em JavaScript?
Use charCodeAt(0): 'A'.charCodeAt(0) retorna 65. Para pontos de código Unicode acima de 65535, use codePointAt(0). Para converter um código de volta a um caractere: String.fromCharCode(65) retorna 'A'. Para suporte completo a Unicode: String.fromCodePoint(128512) retorna o emoji 😀.
›O que faz o código ASCII 0 (NUL)?
NUL (código 0) é o caractere nulo. Em C e em muitas outras linguagens, ele é usado como terminador de string — a string 'Hello' é armazenada na memória como os bytes 72, 101, 108, 108, 111, 0. Em bancos de dados e formatos de arquivo, NUL pode aparecer como separador de campo ou byte de preenchimento. Na maioria dos editores de texto e terminais, NUL é invisível e ignorado, mas pode causar problemas ao ler arquivos binários como texto.
›O que é o caractere Escape (ASCII 27)?
ESC (código 27, 0x1B) é o caractere Escape. É o início das sequências de escape ANSI/VT100, que controlam as cores do terminal e o movimento do cursor. Por exemplo, a sequência ESC[31m altera a cor do texto do terminal para vermelho. Em muitas aplicações, pressionar a tecla Escape envia esse caractere. Ele também é usado em vários formatos de dados e protocolos de comunicação.
›Por que a letra maiúscula A tem o código ASCII 65 e a minúscula a tem o código 97?
A tabela ASCII foi projetada de modo que as letras maiúsculas (A=65, B=66, …, Z=90) e as minúsculas (a=97, b=98, …, z=122) diferem exatamente em 32. Isso permite converter entre maiúsculas e minúsculas com uma única adição ou subtração. Para converter maiúsculas em minúsculas no ASCII: adicione 32 (ou defina o bit 5). Para converter minúsculas em maiúsculas: subtraia 32 (ou limpe o bit 5). É por isso que a conversão de maiúsculas/minúsculas bit a bit funciona em C: char lower = upper | 0x20.
›Qual é a diferença entre CR, LF e CRLF?
CR (Carriage Return, código 13) e LF (Line Feed, código 10) se originaram das convenções das máquinas de escrever e dos teletipo. O CR move a cabeça de impressão para o início da linha; o LF avança para a linha seguinte. Unix/Linux usa apenas LF para novas linhas. O Windows usa CR+LF (ambos juntos). O Mac OS clássico (anterior ao OS X) usava apenas CR. A maioria dos analisadores modernos lida com os três formatos, mas misturar finais de linha em arquivos fonte causa problemas com diffs de controle de versão e alguns processadores de texto.
Ferramentas relacionadas
Última atualização: