O Código ASCII

Março 2017

A codificação das informações

O morse foi a primeira codificação que permitiu a comunicação remota. Foi Samuel F. B. Morse que o afinou em 1844. Este código é composto de pontos e travessões (código binário, de certa forma). Ele permitiu efetuar comunicações muito mais rápidas do que com o sistema de correio da época nos Estados Unidos, o Pony Express. O intérprete era o homem, por isso era preciso um bom conhecimento do código.

Vários códigos foram inventados incluindo o código de Emile Baudot, que recebeu o nome de código Baudot. Em contrapartida, os ingleses o chamaram de código Murray. Em 10 de Março de 1876, o Dr. Graham Bell criou o primeiro telefone, uma invenção revolucionária que permitiu, desde então, fazer circular a informação vocal através de linhas metálicas. Para informação, a Câmara dos Representantes decidiu que a invenção do telefone fosse da responsabilidade de Antonio Meucci. Na verdade, Meucci tinha depositado um pedido de patente em 1871, mas não conseguiu angariar fundos para financiá-la antes de 1874. Estas linhas permitiram o desenvolvimento de máquinas que permitiam codificar e decodificar os caracteres graças ao código Baudot (os caracteres eram codificados em 5 bits e só dispunha de apenas 32 caracteres). Nos anos 60, o código ASCII (American Standard Code for Information Interchange) foi adotado como código padrão. Ele permite a codificação de caracteres em 8 bits, ou seja, a possibilidade de 256 caracteres.

O que é o código ASCII

A memória do computador conserva todos os dados sob a forma digital. Não existe um método para armazenar diretamente os caracteres. Cada caractere possui o seu equivalente em código numérico, é o ASCII (American Standard Code for Information Interchange - Código Americano Padrão) para a troca de dados. O código ASCII básico representava os caracteres em 7 bits (ou seja, 128 caracteres possíveis, de 0 a 127):

Os códigos 0 a 31 não são caracteres: são chamados de caracteres de controle porque permitem fazer ações como: carriage return (CR - retorno do carro) e bip sonoro (BEL)
Os códigos 65 a 90 representam as maiúsculas
Os códigos 97 a 122 representam as minúsculas: basta alterar o 6° bit para passar das maiúsculas para as minúsculas, isto é, acrescentar 32 ao código ASCII em base decimal.

Tabela dos caracteres ASCII

caracter código ASCII código hexadecimal
NUL (Nulo)000
SOH (Start of heading)101
STX (Start of text)202
ETX (End of text)303
EOT (End of transmission)404
ENQ (Enquiry)505
ACK (Acknowledge)606
BEL (Bell)707
BS (Backspace)808
TAB (Tabulação horizontal)909
LF (Line Feed, salto de linha)100A
VT (Vertical tabulation, tabulação vertical)110B
FF (Form feed)120C
CR (Carriage return, retorno do carro)130D
SO (Shift out)140E
SI (Shift in)150F
DLE (Data link escape)1610
DC1 (Device control 1)1711
DC2 (Device control 2)1812
DC3 (Device control 3)1913
DC4 (Device control 4)2014
NAK (Negative acknowledgement)2115
SYN (Synchronous idle)2216
ETB (End of transmission block, fim de bloco de transmissão)2317
CAN (Cancel, cancelar)2418
EM (End of medium, fim do meio)2519
SUB (Substitute, substituto)261A
ESC (Escape, cararctere ESC)271B
FS (File separator, separador de arquivo)281C
GS (Group separator, separador de grupo)291D
RS (Record separator, separador de registro)301E
US (Unit separator, separador de registro)311F
SP (Space, espaço)3220
!3321
"3422
#3523
$3624
%3725
&3826
'3927
(4028
)4129
*422A
+432B
,442C
-452D
.462E
/472F
04830
14931
25032
35133
45234
55335
65436
75537
85638
95739
:583A
;593B
<603C
=613D
>623E
?633F
@6440
A6541
B6642
C6743
D6844
E6945
F7046
G7147
H7248
I7349
J744A
K754B
L764C
M774D
N784E
O794F
P8050
Q8151
R8252
S8353
T8454
U8555
V8656
W8757
X8858
Y8959
Z905A
[915B
925C
]935D
^945E
_955F
'9660
a9761
b9862
c9963
d10064
e10165
f10266
g10367
h10468
i10569
j1066A
k1076B
l1086C
m1096D
n1106E
o1116F
p11270
q11371
r11472
s11573
t11674
u11775
v11876
w11977
x12078
y12179
z1227A
{1237B
1247C
}1257D
~1267E
Toque de supressão1277F

Tabela de caracteres ASCII estendido

O código ASCII foi concebido para a língua inglesa, por isso ele não contém caracteres acentuados, nem caracteres específicos de outro idioma. Para codificar este tipo de caractere é necessário recorrer a outro código. O código ASCII foi então estendido para 8 bits (um byte) para poder codificar mais caracteres (fala-se, aliás, de código ASCII estendido). Este código atribui os valores de 0 a 255 (logo, codificadas em 8 bits, ou seja, 1 byte) às letras maiúsculas e minúsculas, aos números, às marcas de pontuação e aos outros símbolos (caracteres acentuados no caso do código iso-latin1). Ele não é único e depende muito da plataforma utilizada. Os dois jogos de caracteres ASCII estendidos mais frequentemente utilizados são o código ASCII estendido OEM, ou seja, aquele que equipava as primeiras máquinas de tipo PC IBM:

ASCII estendido OEM - OEM Extended ASCII

O código ASCII estendido ANSI, utilizado pelos sistemas operacionais recentes:

Código estendido ASCII ANSI

O código EBCDIC

O código EBCDIC (Extended Binary - Coded Decimal Interchange Code), desenvolvido pela IBM, permite codificar caracteres em 8 bits. Embora muito utilizado nas máquinas IBM, não teve o sucesso do código ASCII.

Unicode

O sistema Unicode é um sistema de codificação dos caracteres em 16 bits inventado em 1991. O sistema Unicode permite representar qualquer caractere por um código em 16 bits, independentemente de qualquer sistema operacional ou linguagem de programação. Ele reúne, assim, quase todos os alfabetos existentes (árabe, armênio, cirílico, grego, hebreu, latino, etc.) e é compatível com o código ASCII. O conjunto dos códigos Unicode está disponível no site Unicode.org.

Veja também


ASCII Code
ASCII Code
Código ASCII
Código ASCII
ASCII Code
ASCII Code
Code ASCII
Code ASCII
Codice ASCII
Codice ASCII
Este documento, intitulado 'O Código ASCII', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.