CHAP. II. LE CODAGE DE L'INFORMATION
II.0. Introduction
Dans une machine, toutes les informations sont codées
sous forme d'une suite de « 0 » et de « 1 » (langage
binaire). Mais l'être humain ne parle généralement pas
couramment le langage binaire. Il doit donc tout « traduire » pour
que la machine puisse exécuter les instructions relatives aux
informations qu'on peut lui donner.
Le codage étant une opération purement humaine,
il faut produire des algorithmes qui permettront à la machine de
traduire les informations que nous voulons lui voir traiter. Le codage est une
opération établissant une bijection entre une information et une
suite de « 0 » et de « 1 » qui sont représentables
en machine.
II.1. LE CODAGE DES NOMBRES ENTIERS
II.1.1. Le codage des entiers en général
Les nombres entiers peuvent être codés comme des
caractères ordinaires. Toutefois les codages adoptés pour les
données autres que numériques sont trop lourds à manipuler
dans un ordinateur. Du fait de sa constitution, un ordinateur est plus «
habile » à manipuler des nombres écrits en numération
binaire (qui est un codage particulier).
Nous allons décrire trois modes de codage des entiers
les plus connus, à savoir le système décimal, le
système binaire et le système hexadécimal. Signalons,
à ce sujet, qu'en informatique, les systèmes les plus
utilisés sont le système hexadécimal et le système
binaire. Il est possible de représenter tous les nombres dans un
système à base b (b entier, b>1)
Soit (x n x n - 1 x b un nombre x écrit
en base b avec n+1 symboles. ... 0 )
« xk » est le symbole associé à
la puissance « k
b , « xk » E { 0,1,..., b
-1}
Lorsque b = 2 (numération binaire), chaque symbole du
nombre x E { 0, 1}, soit « xk » E { 0, 1} . Autrement dit
les nombres binaires sont donc écrits avec des 0 et des 1, qui sont
représentés physiquement par des bits dans la machine.
Le bit de rang 0 est appelé le bit de poids faible.
~ 25 ~
Le bit de rang n est appelé le bit de poids fort.
Une mémoire à n+1 bits (n>0) permet de
représenter sous forme binaire (en
binaire pur) tous les entiers naturels de l'intervalle
2n + 1 1
? - ?
? ? .
Soit pour n+1 = 8 bits, tous les entiers de l'intervalle [0, 255]
Soit pour n+1 =16 bits, tous les entiers de l'intervalle [0, 65535]
II.1.2. Codage des nombres entiers : binaire
signé
Ce codage permet la représentation des nombres entiers
relatifs. Dans la représentation en binaire signé, le bit de
poids fort (bit de rang n associé à 2n) sert à
représenter le signe (0 pour un entier positif et 1 pour un entier
négatif), les n autres bits représentent la valeur absolue du
nombre en binaire pur.
Une mémoire à n+1 bits (n>0) permet de
représenter sous forme binaire (en binaire signé) tous les
entiers naturels de l'intervalle [-(2n - 1), 2n - 1)].
Soit pour n+1 = 8 bits, tous les entiers de l'intervalle [-127, 127]
Soit pour n+1 = 16 bits, tous les entiers de l'intervalle
[-32767, 32767]
Le nombre Zéro est représenté dans cette
convention (dites du zéro positif) par :
0000...00000
Il est à noter qu'il reste malgré tout une
configuration mémoire inutilisée : 1000...00000.
Cet état binaire ne représente a priori aucun nombre entier ni
positif ni négatif de l'intervalle [-(2n-1),
2n-1)]. Afin de ne pas perdre inutilement la configuration «
1000...00000 », les informaticiens ont
décidé que cette configuration représente malgré
tout un nombre négatif parce que le bit de signe 1, et en même
temps la puissance du bit contenant le « 1 », donc par convention
-2n.
L'intervalle de représentation se trouve alors
augmenté d'un nombre, il devient :
[-2n, 2n -1)].
Soit pour n+1= 8 bits, tous les entiers de l'intervalle [-128,
127]
Soit pour n+1 = 16 bits, tous les entiers de l'intervalle
[-32768, 32767]
Ce codage n'est pas utilisé tel quel, il est
donné ici à titre pédagogique. En effet, le traitement
spécifique du signe coûte cher en circuits électroniques
~ 26 ~
et en temps de calcul. C'est une version améliorée
qui est utilisée dans la plupart des calculateurs : elle se nomme le
complément à deux.
|