L'ordinateur n'est capable de stocker que des valeurs numériques 0 ou 1. En groupant des 0 et des 1, il est possible de coder des nombres entiers ou réels de toutes sortes.
Mais cela ne nous dit pas comment l'ordinateur est capable de stocker des textes.
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.
Il a donc fallu trouver une nouvelle convention qui permette de stocker ces caractères.
Nous avons tous joué à écrire des messages secrets dans lesquels les lettres des mots sont remplacés par des nombres. C'est le même principe qui a été utilisé.
Chaque caractère possède un é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 ", prononcez "A ski").
Dans la convention ASCII, les caractères dont le code est inférieur à 32 sont particuliers ; on y trouve, par exemple, Escape -27, Retour Arrière (back space)-8, etc. Les codes à partir de 32 (SP pour "space") représentent les différents signes utilisables.
Ils sont présentés dans le tableau ci-dessous.
code | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 |
NUL
|
SOH
|
STX
|
ETX
|
EOT
|
ENQ
|
ACK
|
BEL
|
BS
|
HT
|
10 |
LF
|
VT
|
NP
|
CR
|
SO
|
SI
|
DLE
|
DC1
|
DC2
|
DC3
|
20 |
DC4
|
NAK
|
SYN
|
ETB
|
CAN
|
EM
|
SUB
|
ESC
|
FS
|
GS
|
30 |
RS
|
US
|
SP
|
!
|
"
|
#
|
$
|
%
|
&
|
'
|
40 |
(
|
)
|
*
|
+
|
,
|
-
|
.
|
/
|
0
|
1
|
50 |
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
:
|
;
|
60 |
<
|
=
|
>
|
?
|
@
|
A
|
B
|
C
|
D
|
E
|
70 |
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
80 |
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
90 |
Z
|
[
|
\
|
]
|
^
|
_
|
`
|
a
|
b
|
c
|
100 |
d
|
e
|
f
|
G
|
h
|
i
|
j
|
k
|
l
|
m
|
110 |
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
120 |
x
|
y
|
z
|
{
|
|
|
}
|
~
|
DEL
|
Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles, de 0 à 127). Le code ASCII a été mis au point pour la langue anglaise, il ne contient donc pas les caractères accentués, ni de caractères spécifiques à une autre langue (ñ, Å, ø,...). Pour coder ce type de caractères, il faut recourir à un autre encodage.
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 codes 128 à 255 (donc codées sur 8 bits, soit 1 octet) à des signes et lettres supplémentaires, dont les caractères accentués du français et d'autres langues.
Tiens, une petite question en passant. Les chinois ne seraient-ils pas un peu à l'étroit avec 256 caractères possibles ?
C'est effectivement un gros problème: la convention ASCII n'est adaptée qu'à l'alphabet occidental. Il a fallu trouver autre chose pour ceux, et ils sont nombreux, qui emploient d'autres systèmes.
Le code ASCII (même étendu) est totalement insuffisant pour coder tous les caractères possibles, dans toutes les langues possibles.
Il faut donc se résoudre à utiliser plus d'un octet pour coder un caractère.
La convention Unicode utilise 8 bits (reprenant donc l'ASCII étendu avec 256 caractères), 16 bits (2 octets et donc 65535 caractères codés), voire 32 bits (4 octets et donc plus de 4 milliards de caractères) dans chacune des trois variantes UTF (Unicode Transformation Format ): UTF-8, UTF-16 et UTF-32.
Et donc, il va falloir apprendre par coeur les 4 milliards de codes de l'UTF-32 ? J'ai comme un doute, là.
Pas de panique. La convention UTF-8 nous suffira dans la plupart des applications qui ne doivent pas être
prévues pour les régions du monde utilisant d'autres systèmes d'écriture.
En plus, l'intérêt de retenir les 256 codes par coeur est plus que limité.
Bon, je suis un peu rassuré. N'empêche, jusque là, je comprends donc comment l'ordinateur peut stocker une lettre. Mais si je voulais lui faire avaler l'intégrale d'Honoré de Balzac ?
Très simple : pour un ordinateur, un texte sera simplement considéré comme une suite de caractères. On dira encore une chaîne de caractères.
Pour stocker des mots ou des phrases dans la mémoire de l'ordinateur, il suffit d'assembler un certain nombre de caractères.
On appelle généralement chaîne de caractères un ensemble de caractères qui constitue des mots ou des phrases.
U | N | O | C | T | E | T | |
85 | 78 | 32 | 79 | 67 | 84 | 69 | 84 |
Une chaîne de caractères est donc formée d'un ensemble d'octets accolés. Chaque octet représente un caractère.
Une chaîne de caractères formée de 10 signes occupera donc 10 octets en mémoire centrale.
On imagine bien toute la poésie qui se dégage d'un texte codé en UTF-8.
Quand tu es capable d'expliquer pourquoi et comment des textes peuvent être codés dans la mémoire de l'ordinateur, passe à la page suivante.