Os 128 códigos ASCII
De decimal, hex e binário a entidades HTML e combinações com Ctrl, tudo calculado a partir do código. A tabela mostra por que maiúsculas e minúsculas ficam a exatos 32 de distância.
A tabela
Oito colunas para os três bits de cima e dezesseis linhas para os quatro de baixo. A coluna das maiúsculas fica bem ao lado da das minúsculas — é essa a forma da tabela.
Controle33
Caracteres que não desenham nada e mandam o aparelho fazer algo.
Espaço1
Não desenha nada, mas ocupa uma coluna.
Dígitos10
O zero fica em 48, então os quatro bits de baixo são o próprio dígito.
Maiúsculas26
O A começa em 65 e vêm mais vinte e seis letras.
Minúsculas26
O a começa em 97 — a maiúscula mais 32.
Sinais32
Os sinais espalhados entre os dígitos e as letras.
Os 33 códigos de controle33
Formatação
Quebras de linha, tabulações e avanços de página — os que ainda se usam.
Transmissão
Códigos que marcavam onde uma mensagem começava e terminava, e se chegou.
Dispositivo
Códigos que tocavam uma campainha ou trocavam o conjunto de caracteres.
Separadores
Quatro separadores encaixados: arquivo, grupo, registro, unidade.
Outros
Apagar, cancelar e ESC, a tecla que abre um segundo sentido.
Como ler
- Some 32 a uma maiúscula e sai a minúscula — muda um único bit.
- Os dígitos começam em 48, então subtrair 48 do código dá o número.
- Segurar Ctrl zera os três bits de cima — por isso Ctrl+I é uma tabulação.
- Tudo abaixo de 32, e o 127, não desenha nada; ali fica a abreviação.
Perguntas frequentes
Q. Por que só há 128 códigos ASCII?
Porque o código tem sete bits, e dois elevado a sete é 128.
Q. Por que maiúsculas e minúsculas diferem em 32?
A tabela foi montada para que um único bit, o sexto, as separe. Trocando esse bit, troca a caixa.
Q. Por que Ctrl+I dá uma tabulação?
Ctrl zera os três bits de cima. O I é 73; ficando os cinco de baixo dá 9, a tabulação.
Q. Os códigos de controle ainda são usados?
Quebra de linha (10), retorno de carro (13), tabulação (9) e ESC (27) são usados todo dia. O resto é da era do teletipo.
Q. E os caracteres acima de 128?
Não são ASCII. Unicode cuida deles, e o UTF-8 mantém o ASCII intacto nas primeiras 128 posições.