Code ASCII


 

Le codage des informations


Le morse a été le premier codage à permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis au point en 1844. Ce code est composé de points et de tirets (un codage binaire en quelque sorte...). Il permit d'effectuer des communications beaucoup plus rapides que ne le permettait le système de courrier de l'époque aux Etats-Unis : le Pony Express. L'interpréteur était l'homme à l'époque, il fallait donc une bonne connaissance du code...

De nombreux codes furent inventés dont le code d'Émile Baudot (portant d'ailleurs le nom de code Baudot, les anglais l'appelaient en revanche Murray Code).

Le 10 mars 1876, le Dr Graham Bell met au point le téléphone, une invention révolutionnaire qui permet de faire circuler de l'information vocale dans des lignes métalliques. Pour l'anecdote, la Chambre des représentants a décidé que l'invention du téléphone revenait à Antonio Meucci. Ce dernier avait en effet déposé une demande de brevet en 1871, mais n'avait pas pu financer celle-ci au-delà de 1874.

Ces lignes permirent l'essor des téléscripteurs, des machines permettant de coder et décoder des caractères grâce au code Baudot (les caractères étaient alors codés sur 5 bits, il y avait donc 32 caractères uniquement...).

Dans les années 60, le code ASCII (American Standard Code for Information Interchange) est adopté comme standard. Il permet le codage de caractères sur 8 bits, soit 256 caractères possibles.
 

Qu'est-ce que le code ASCII ?


La mémoire de l'ordinateur conserve toutes les données sous forme numérique. Il n'existe pas de méthode pour stocker directement les caractères. Chaque caractère possède donc son équivalent en code numérique : c'est le code ASCII (American Standard Code for Information Interchange - traduisez « Code Americain Standard pour l'Echange d'Informations »). Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles, de 0 à 127).

  • Les codes 0 à 31 ne sont pas des caractères. On les appelle caractères de contrôle car ils permettent de faire des actions telles que :
    • retour à la ligne (CR)
    • Bip sonore (BEL)
  • Les codes 65 à 90 représentent les majuscules
  • Les codes 97 à 122 représentent les minuscules

(Il suffit de modifier le 6ème bit pour passer de majuscules à minuscules, c'est-à-dire ajouter 32 au code ASCII en base décimale.)
 

Table des caractères ASCII





caractère<b> <b>code ASCII code hexadécimal
NUL (Null)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 (Tabulation horizontale)909
LF (Line Feed, saut de ligne)100A
VT (Vertical tabulation, tabulation verticale)110B
FF (Form feed)120C
CR (Carriage return, retour à la ligne)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, fin de bloc de transmission)2317
CAN (Cancel, annulation)2418
EM (End of medium, fin du médium)2519
SUB (Substitute, substitut)261A
ESC (Escape, caractère d'échappement)271B
FS (File separator, séparateur de fichier)281C
GS (Group separator, séparateur de groupe)291D
RS (Record separator, séparateur d'enregistrement)301E
US (Unit separator, séparateur d'enregistrement)311F
SP (Space, espace)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
Touche de suppression1277F

 

Table des caractères ASCII Etendue


Le code ASCII a été mis au point pour la langue anglaise, il ne contient donc pas de caractères accentués, ni de caractères spécifiques à une langue. Pour coder ce type de caractère il faut recourir à un autre code. Le code ASCII a donc été étendu à 8 bits (un octet) pour pouvoir coder plus de caractères (on parle d'ailleurs de code ASCII étendu...).
Ce code attribue les valeurs 0 à 255 (donc codées sur 8 bits, soit 1 octet) aux lettres majuscules et minuscules, aux chiffres, aux marques de ponctuation et aux autres symboles (caractères accentués dans le cas du code iso-latin1).


Le code ASCII étendu n'est pas unique et dépend fortement de la plateforme utilisée.


Les deux jeux de caractères ASCII étendus les plus couramment utilisés sont :

  • Le code ASCII étendu OEM, c'est-à-dire celui qui équipait les premières machines de type IBM PC


ASCII étendu OEM - OEM Extended ASCII
  • Le code ASCII étendu ANSI, utilisé par les systèmes d'exploitation récents


ASCII étendu ANSI - ANSI Extended ASCII

 

Le code EBCDIC


Le code EBCDIC (Extended Binary-Coded Decimal Interchange Code), développé par IBM, permet de coder des caractères sur 8 bits. Bien que largement répandu sur les machines IBM, il n'a pas eu le succès qu'a connu le code ASCII.
 

Unicode


Le code Unicode est un système de codage des caractères sur 16 bits mis au point en 1991. Le système Unicode permet de représenter n'importe quel caractère par un code sur 16 bits, indépendamment de tout système d'exploitation ou langage de programmation.

Il regroupe ainsi la quasi-totalité des alphabets existants (arabe, arménien, cyrillique, grec, hébreu, latin, ...) et est compatible avec le code ASCII.

L'ensemble des codes Unicode est disponible sur le site http://www.unicode.org.

Réalisé sous la direction de , fondateur de CommentCaMarche.net.

Ce document intitulé «  Code ASCII  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.