1. Codage des informations

L'information, en informatique, est codée par bits qui peuvent prendre deux valeurs uniquement : 0 et 1.

Les principaux supports physiques sont : condensateurs, jonctions passantes ou bloquées (diodes), champs magnétiques, tores. . . Très souvent, l'état d'un support correspond à l'existence d'une tension électrique ou pas (0 ou 5 volt approximativement).

Par commodité, les bits sont regroupés par paquets de 8 pour former des octets. Voici l'exemple d'un octet :

11100101
Pour faciliter la lecture d'un octet, on le code dans la base hexadécimale (base 16) en le découpant en deux demi-octets :
1110 0101
De même que notre base 10 (que nous utilisons tous les jours !) comporte dix symboles (les chiffres arabes de 0 à 9), la base 16 doit en comporter 16 : on prend les dix chiffres arabes et on rajoute les 6 premières lettres de l'alphabet en majuscule.
Voici la table de codage correspondante :
binaire décimal hexadécimal
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F
Ainsi l'octet ci-dessus 1110 0101 devient E5 :
1110 0101
E 5
Remarque : comment passer de la base 2 vers la base 10 ou 16?
1110 0101
23+22+21+0 0+22+0+20
8+4+2 4+1
14 5
E 5
Pour des raisons techniques, les octets sont regroupés en mots : ce sont des puissances de 2 octets. Par exemple, il existe des machines à architecture 8 bits, 16 bits, 32 bits Actuellement, la plupart des micro-ordinateurs fonctionnent en 16 ou 32 bits.

Exercice : traduire le nombre 19 en binaire.
Réponse : il faut procéder par des divisions successives par 2 :

19 = 2*9+1
9 = 2*4+1
4 = 2*2+0
2 = 2*1+0
1 = 2*0+1
le nombre 19 s'écrit donc 10011 en mode binaire.
Si l'on code sur 4 bits, on peut représenter tous les entiers entre 0 et 15 (24-1) ou tous les relatifs entre -7 et 7 en décidant de garder le bit le plus à gauche pour indiquer le signe (0 pour les nombres positifs et 1 pour les négatifs).

Exercice : compléter le tableau suivant :
entier relatif binaire (réponse)
-7 ?
-6 ?
-5 ?
-4 ?
-3 ?
-2 ?
-1 ?
0 ? voir la réponse
1 ?
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?

De même sur 16 bits, on peut représenter soit tous les entiers compris entre 0 et 65535, soit les relatifs entre -32767 et +32767.

Le code binaire est surtout utilisé à coder et à calculer les adressages mémoires, mais n'est que peu utilisé pour effectuer des calculs arithmétiques

Pour ces calculs on préfère user de la représentation des entiers en complément à deux . De quoi s'agit-il ?

On représente les entiers positifs de la même façon que précédemment. Mais les entiers négatifs sont d'abord codés en "complément à 1" (0 est remplacé par 1 et vice-versa) puis en "complément à 2" en ajoutant 1 au complément à 1.
L'avantage de ce codage est de simplifier les soustractions en les remplaçant par des additions.

entier relatif valeur absolue binaire complément à 1 complément à 2
-8 8 1OOO O111 1OOO
-7 7 O111 1OOO 1OO1
-6 6 O11O 1OO1 1O1O
-5 5 O1O1 1O1O 1O11
-4 4 O1OO 1O11 11OO
-3 3 OO11 11OO 11O1
-2 2 OO1O 11O1 111O
-1 1 OOO1 111O 1111
0 0 OOOO OOOO OOOO
1 1 OOO1 OOO1 OOO1
2 2 OO1O OO1O OO1O
3 3 OO11 OO11 OO11
4 4 O1OO O1OO O1OO
5 5 O1O1 O1O1 O1O1
6 6 O11O O11O O11O
7 7 O111 O111 O111

Exercice : faire l'opération 3 - 5.

Réponse : 3 en binaire s'écrit 0011. Comment écrire - 5 en binaire ? Sa valeur absolue est 5 ; son complément à 1 est 1010 et son complément à 2 est 1011. Ensuite il suffit de faire 1010 + 1011 = 1110 car le dernier bit le plus à gauche est perdu ( ce serait ici un 1) puisque nous sommes en codage sur 4 bits.

Remarque : pour un codage sur 16 bits, la représentation en complément à 2 permet de coder les entiers de -32768 à +32767.

L'inconvénient de ce procédé est le dépassement de capacité ("overflow"). Essayez en exercice de faire l'opération -5 - 4 en codage 4 bits. (on obtient 10111 qui correspond à 7 et non à - 9).

On utilise enfin la représentation en "virgule flottante " pour le codage des nombres réels.
Par exemple, le nombre 0,0027 s'écrira dans le système décimal 27.10-4.
De la même façon, le nombre 11011 peut s'écrire dans le système binaire 0,11011.2101. En effet, le 2 représente le chiffre de la base et 101 le chiffre 5 dans cette base. Si l'on décide de coder le nombre 27 sur 4 octets, le premier octet représentant l'exposant et les 3 derniers la mantisse, on obtiendra :

00000101 01101100 00000000 00000000

(bits de signe)

Problème : comment coder les caractères de l'alphabet ?
En plus des lettres majuscules et minuscules, il y a les chiffres et les caractères de contrôle (retour chariot, espace, échappement ), ce qui représente environ 128 caractères différents.
Ces 128 caractères peuvent se coder sur 7 bits : c'est le code ASCII (American Standard Code for Information Interchange). En pratique, on regroupe les 7 bits en deux champs :

n° du bit 6 5 4 3 2 1 0
champ champ de zone champ numérique

On peut ainsi dresser une table des caractères :

champ de zone 0 1 2 3 4 5 6 7
champ numérique







0 NUL DLE SP 0 @ P ' p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 " 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAK % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB ' 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SUB * : J Z j z
B VT ESC + ; K [ k {
C FF FS , < L \ l |
D CR GF -
M ] m }
E SO RS . > N ^ n ~
F SI US / ? O -- o DEL

flèche Retour au sommaire