Représentation des données non numériques
Il va très vite aussi être nécessaire de réprésenter d'autres données que des nombres.
On a donc inventer plusieurs codes alphanumériques. C'est à dire des codes qui permettent de représenter des chiffres, des lettres, des signes de ponctuation, etc.
Chaque code lie un symbole à un nombre. Ainsi on utilise des "tables de codage" pour savoir quel nombre correspond à tel caractère.
EBCDIC (Extended Binary Coded Decimal Interchange Code)
Ce code est une extension du "BCD" (Binary Coded Decimal) mais sur 8 bits (4 bits de "zone" et 4 bits numériques)
Caractère | Bits de zone | Bits numériques | Hexa |
---|---|---|---|
0 | 1111 |
0000 |
F0 |
1 | 1111 |
0001 |
F1 |
2 | 1111 |
0010 |
F2 |
3 | 1111 |
0011 |
F3 |
4 | 1111 |
0100 |
F4 |
5 | 1111 |
0101 |
F5 |
6 | 1111 |
0110 |
F6 |
7 | 1111 |
0111 |
F7 |
8 | 1111 |
1000 |
F8 |
9 | 1111 |
1001 |
F9 |
A | 1100 |
0001 |
C1 |
B | 1100 |
0010 |
C2 |
C | 1100 |
0011 |
C3 |
D | 1100 |
0100 |
C4 |
E | 1100 |
0101 |
C5 |
F | 1100 |
0110 |
C6 |
G | 1100 |
0111 |
C7 |
H | 1100 |
1000 |
C8 |
I | 1100 |
1001 |
C9 |
J | 1101 |
0001 |
D1 |
K | 1101 |
0010 |
D2 |
L | 1101 |
0011 |
D3 |
M | 1101 |
0100 |
D4 |
N | 1101 |
0101 |
D5 |
O | 1101 |
0110 |
D6 |
P | 1101 |
0111 |
D7 |
Q | 1101 |
1000 |
D8 |
R | 1101 |
1001 |
D9 |
ASCII (American Standard Code for Information Interchange)
Le code ASCII beaucoup plus connu et utilisé permet de stoquer 128 caractères sur 7 bits.
Ensuite le code ASCII fut stoqué sur 8 bits car IBM a ajouté 127 codes supplémentaires pour d'autres caractères plus spécifiques (mais pas supportés par tous les ordinateurs).
Les codes 0 à 31 sont des caractères de contrôle pour la transmission des données ou l'affichage sur un terminal (tab, retour à la ligne, etc).
Unicode et UTF-8
Le code ASCII étant d'origine américaine, beaucoup de caractères n'étaient pas supportés (par exemple, les caractères accentués).
L'organisation internationale de normalisation (ISO) a donc tenté de créer un standard pour l'échange de textes dans différentes langues : l'Unicode.
L'une des formes les plus utilisées (surtout sur internet) de ce standard est le code UTF-8 qui est extensible est compatible avec l'ASCII.
L'UTF-8 est à taille variable, les caractères peuvent être représenté sur 1, 2, 3 ou 4 octets. Si le caractère est représenté sur 1 octet, alors c'est un caractère ASCII.
Ainsi l'UTF-8 permet de représenter 149 186 caractères différents (et a la possibilité de coder au total 2 097 152 caractères différents).
Représentation des données dans les languages de programmation
Chaque language a sa propre manière de représenter ses données. Par exemple, en C une chaine de caractère est stoquée comme étant une succession de caractères séparés par des caractères sépciaux.
En savoir plus
- Wikipedia - Unicode
- Wikipedia - UTF-8 (explique aussi comment connaitre le nombre d'octet d'un caractère)