Représentation de l’information
I- Codification et représentation des nombres
1 Objectifs
• Savoir définir la base d’un système de numération.
• Savoir définir le rang et le poids d’un chiffre.
• Savoir représenter un nombre sous forme polynomiale.
• Savoir déterminer la valeur décimale d’un nombre de base b quelconque et vice versa.
• Savoir convertir un nombre binaire en un nombre octal ou en hexadécimal et vice
versa.
• Savoir effectuer les opérations arithmétiques directement dans le système binaire,
octal et hexadécimal.
• Comment représenter les nombres négatifs dans la machine.
• Comment représenter les nombres réels dans la machine.
2 Introduction
Les systèmes numériques complexes tels que les calculateurs doivent traiter toute sorte
d’informations. A cette fin, ces informations doivent être codées à l ’aide des chaines binaires.
Cette section décrit les notions fondamentales du codage de l’information utilisé par les
systèmes numériques ainsi que les opérations arithmétiques réalisées sur ces codes.
3 Les systèmes de numération
Le système de numération décrit la façon avec laquelle les nombres sont représentés ; et il est
définit par :
- Un alphabet: ensemble de symboles ou chiffres,
- Des règles d’écritures des nombres: Juxtaposition de symboles.
Il existe plusieurs systèmes de numérations dont les plus connus sont:
- Le système décimal (b=10) qui est utilisé et pratiqué dans notre vie quotidienne. Ce
système utilise dix chiffres: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
- Le système binaire (b=2) qui est utilisé par les ordinateurs. Ce système utilise deux
chiffres {0, 1}. Par convention on identifie 0 comme une absence de tension, et 1 comme
une présence de tension. L'ordinateur comprend donc uniquement des nombres en base 2.
Exemple : 101101 , 01100110, 11111111, 10000001. Ces 0 et 1 sont appelés bit qui est
une abréviation de binary digit.
- Le système octal (b=8=23) qui permet de coder trois bits par un seul symbole. Ce système
utilise huit chiffres: {0, 1, 2, 3, 4, 5, 6, 7}.
- Le système hexadécimal (b=16) est utilisé pour réduire encore plus l'écriture des nombres
binaire. La base hexadécimale est aussi une puissance de 2 (16 = 24 ). qui permet de coder
quatre bits par un seul symbole. Ce système utilise size chiffres: {0, 1, 2, 3, 4, 5, 6, 7, 8,
9, A, B, C, D, E, F}.
4 Les entiers positifs
4.1 Forme polynomiale
On peut décomposer tout nombre N en fonction de puissances entières de la base de son
système de numération. On notera en indice la base du système de numération dans lequel le
nombre N envisagé est écrit (10 dans l’exemple ci-dessous).
Considérons par exemple, le nombre décimal 1234, On aura :
(1234)(10)= 1x103 + 2x102 + 3x101 + 4x100
Le chiffre de droite (4 dans l’exemple) s’appelle le chiffre de poids faible. Celui de gauche (1
dans l’exemple) s’appelle le chiffre de poids fort. L’exposant de la base, associé à un chiffre
d’un nombre quelconque, s’appelle le rang. Par exemple 4 est de rang 0 tandis que 1 est de
rang 3 dans l’exemple ci dessus. On peut généraliser cette notion et écrire sous forme
polynomiale tout nombre N de base b quelconque.
On aura :
(1)
Où ai est un chiffre qui appartient à la base b tel que 0≤ ai < b. i est le rang du chiffre ai et n est
l’exposant de b du chiffre de poids fort.
4.2 Changement de base (transcodage)
Le transcodage (ou conversion de base) est l’opération qui permet de passer de la
représentation d’un nombre exprimé dans une base (b) à la représentation du même nombre
mais exprimé dans une autre base (b’).
4.2.1 Conversion d’un nombre de base quelconque en un nombre de base décimale
Elle s’obtient par la forme polynomiale vue au paragraphe précédent.
Exemple : donner la valeur décimale du nombre binaire N=1010
Solution :
(1010)(2) = = 1x23 + 0x22 + 1x21 + 0x20 =8 + 0 + 2 + 0=10(10)
a3 a2 a1 a0
4.2.2 Conversion d’un nombre de base décimale en un nombre de base quelconque
Soit N un nombre écrit en base décimale. Si on veut le convertir dans une autre base b, il faut
donc que l’égalité donné par l’équation 1 soit vérifiée. Le problème revient donc à déterminer
les valeurs de ai. Pour cela deux méthodes sont possibles :
1ère méthode : la méthode des puissances qui consiste à chercher les différentes puissances
entières de la base b. l’algorithme commence par chercher la plus grande puissance entière de
b contenue dans N, retrancher ensuite cette quantité du nombre N, recommencer ce processus
en considérant le reste obtenu.
Exemple : convertir le nombre N=75(10) en nombre Octal.
Solution
On aura successivement :
i 8i
75 - 64 1 x 82
0 1
11 - 8 1 x 81
1 8
3 3 x 80
Donc N=75(10)= 1 x 82 + 1 x 81 + 3 x 80 2 64
On a donc : N=75(10) =113(8)
2ème méthode (L'algorithme d'Euclide): cette méthode est simple et plus rapide que la
précédente. Elle consiste à faire des divisions successives par la base b jusqu’à ce que le
quotient soit égal à zéro. On écrit ensuite tous les restes à partir de la fin et de gauche à droite,
en les convertissant en lettres s’il y a lieu (dans le cas hexadécimale par exemple).
Pour le nombre précédant, on obtient :
On a donc : N=75(10) =113(8)
5 Les nombres fractionnaires
On écrira un nombre fractionnaire inférieur à 1 sous la forme :
0≤ ai < b, i est le rang du chiffre ai et n est l’exposant du chiffre de poids faible.
Problème 1: convertir un nombre fractionnaire de base b en décimal.
Exemple : convertir Nf=0,1011(2) en décimal.
Solution : nous obtenons :
Nf=1x2-1 + 0x2-2 + 1x2-3+ 1x2-4 =0.5+0.125+0.0625=0.6875(10)
Problème 2 : convertir un nombre décimal fractionnaire en un nombre de base b.
Pour convertir un nombre décimal fractionnaire en un nombre de base b, il faut multiplier sa
partie fractionnaire par la base. La partie entière du résultat est encadré, et la partie
fractionnaire résultante est multipliée par la base. On recommence ce processus jusqu’à ce
qu’un de ces critères soit vérifié :
1. Le résultat de la multiplication est un nombre entier
2. Après une certaine précision (nombre de chiffres après la virgule)
Exemple : convertir Nf=0,85(10) en binaire, prendre 04 chiffres après la virgule.
Solution : nous obtenons :
0.85 x 2 = 1.70
0.70 x 2 = 1.4
0.4 x 2 = 0.8
0.8 x 2= 1.6
On écrit de gauche à droite les nombres encadrés pris de haut en bas.
On aura donc Nf=0,85(10) = 0,1101(2)
6 Les conversions directes (Conversions par paquets)
6.1 Conversion binaire-octal et vice versa
Correspondance
Octal Binaire
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Tableau 1 : Correspondance entre le système octal et le système binaire
Le système octal (b=8) permet de coder trois bits par un seul chiffre. Ce système utilise les
huit chiffres suivants: {0, 1, 2, 3, 4, 5, 6, 7}.Pour convertir un nombre fractionnaire binaire en
octal, il faut juste grouper les bits par blocs de trois à partir de la virgule, en allant vers la
gauche pour la partie entière et vers la droite pour la partie fractionnaire. Convertir ensuite ces
blocs en octal en se basant sur le tableau 1 suivant :
Exemple 1 :
Convertir le nombre binaire N=11010101,11(2) en Octal.
Solution :
N= 011 010 101 , 110 (2)
3 2 5 , 6 (8)
Exemple 2 :
Convertir le nombre octal N=657,12(8) en binaire.
Solution :
Ecrire par blocs de trois bits, la valeur binaire des chiffres du nombre octal. On obtient :
6 5 7 , 1 2 (8)
110 101 111 , 001 010(2)
6.2 Conversion binaire-hexadécimal et vice versa
Le système hexadécimal (b=16) permet de coder quatre bits par un seul symbole. Ce système
utilise les dix chiffres de la base décimale: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, plus, les six symboles
suivants : {A, B, C, D, E, F}. Pour convertir un nombre fractionnaire binaire en Hexadécimal,
il faut juste grouper les bits par blocs de quatre à partir de la virgule, en allant vers la gauche
pour la partie entière et vers la droite pour la partie fractionnaire. Convertir ensuite ces blocs
en Hexadécimal en se basant sur le tableau 2 :
Correspondance
Hexa Binaire Hexa Binaire
0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111
Tableau 2: Correspondance entre le système Hexadécimal et le système binaire
Exemple1 :
Convertir le nombre binaire N=11010101101,001(2) en
hexadécimal.
Solution :
N= 0110 1010 1101 , 0010 (2)
6 A D , 2 (16)
Exemple 2 :
Convertir le nombre Hexadécimal N=AB0,C1(16) en binaire.
Solution
Ecrire par blocs de quatre bits, la valeur binaire des chiffres du nombre hexadécimal. On
obtient :
A B 0 , C 1 (16)
1010 1011 0000 , 1100 0001 (2)
7 Les opérations arithmétiques en binaire :
7.1 L’addition
L’algorithme de l’addition des nombres binaires est le même que celui de l’addition des
nombres décimaux. Révisons d’abord la familière addition décimale. L’addition de 2 nombres
décimaux s’effectue selon un algorithme à 3 étapes :
Etape 1 : ajouter les chiffres les plus à droite (première colonne)
Etape 2 : noter le chiffre d’unité de cette somme à la même colonne toujours et si cette
somme dépasse 9, on reporte à la colonne suivante la retenue (chiffre de deuxième position de
la somme obtenue)
Etape 3 : s’il y a d’autres colonnes, répéter les 2 étapes précédentes sans oublier de rajouter la
retenue jusqu’à ce qu’il n’y ait plus de colonnes.
Dressons la table d’addition
0+0=0
0+1=1
1+0=1
1+1=0 et retenue de 1
Exemple :
Remarque : 1 + 1 + 1 = 1 et retenue de 1.
7.2 La soustraction
Dressons la table de soustraction
0-0=0
1-0=1
1-1=0
0-1=1 avec retenue
Comme dans le cas du système décimal, la soustraction en binaire est également basée sur la
notion de retenue
Exemple
7.3 La multiplication
Toujours comme dans le cas du système décimal, chaque nombre de la ligne du bas sera
distribué à la ligne du haut. Ensuite, chaque ligne sera sommée (ne pas oublier les retenues)
et le résultat sera alors obtenu. Autrement dit, la multiplication binaire, se résume comme en
décimal en la multiplication de nombres par des chiffres suivi d’additions décalée. En fait, en
binaire c’est encore plus simple du moment que la multiplication par 0 ou 1 donne 0 ou le
nombre lui-même (pas de tableaux de multiplication à apprendre comme en décimal !).
Exemple
Remarque : pour les multiplications des nombres fractionnaires, la règle est la même qu’en
décimal.
Exemple : évaluons le produit binaire : 11,01 × 101,1
7.4 La division
Pour la division en binaire, c’est le même algorithme classique de la division décimale
enseigné dans les classes élémentaires. Elle s'effectue à l'aide de soustractions et de décalages,
Les chiffres du quotient, plus simples, sont 0 ou 1 ; 1 lorsque le diviseur est plus petit que le
dividende et 0 sinon.
Exemple :
8 Les opérations arithmétiques en Octal :
8.1 L’addition
Comme pour le système binaire, on applique les mêmes règles pour les nombres octaux.
Toutefois, dans ce cas, on aura la retenue «1» à gauche à chaque fois que la somme dépasse la
valeur 7 car 7(8)+1(8)=10(8). (Voir le tableau 3)
Pour additionner deux chiffres octaux, on cherche ces chiffres sur le tableau 3: un en début de
colonne, l'autre en début de ligne ; la somme se trouve dans la case correspondant au
croisement entre colonne et ligne [3]. Par exemple, si l'on doit additionner les chiffres octaux
7 et 3, on cherche la somme dans la case située au croisement de la colonne 7 et de la ligne
3. Dans cette case, on trouve 12. Ainsi, dans le système octal, on aura: 7 + 5 = 14.
Exemple d'addition en base octale:
1 1
1 2 3(8)
+ 4 5 7(8)
6 0 2(8)
Exemple de soustraction Hexadécimale:
1
F 2 A(16)
- 1E 5 7 (16)
0 D 3 (16)
Tableau 4 : Tableau d’addition et de soustraction dans le système Hexadécimal
10 Les Entiers Négatifs
Les signe + et – ne sont pas reconnus par un ordinateur lequel ne connait que deux états : 0 et
1. On les représente donc par un bit qui occupera la case de gauche du nombre considéré. Ce
bit s’appelle le bit de signe. Donc, par convention, on représente le signe + par 0 et signe –
par 1. Les nombre négatifs sont représentés en machine par une des trois méthodes :Signe et
Valeur absolue, en complément à 1 ou en complément à 2.
10.1 Représentation des nombres négatifs en SVA (signe et valeur absolue)
C’est la représentation la plus simple d’un nombre négatif, il suffit de coder sa valeur absolue
en binaire puis rajouter le bit du signe. Ainsi le nombre +32 est représenté sur 8 bits par :
Question :
Peut-on représenter le nombre -8 sur 04 bits.
Réponse :
Il est impossible de représenter le chiffre -8 sur 4 bits car sa valeur absolue |-8(10)| qui est
égale à 1000(2) prends déjà 04 bits et donc on aura besoin au minimum de 5 bits pour pouvoir
représenter son bit de signe.
Tableau 5 : Représentation des nombres par la méthode Signe et Valeur Absolue
Question :
Quels sont les nombres qu’on peut représenter sur 04 bits ?
Réponse : d’après le tableau 5, on peut représenter sur 4 bits, l’intervalle de nombres entiers :
De [-(23 - 1) , (23 - 1)] soit de [-7 , +7].
Plus généralement, si on travaille sur n bits, l’intervalle des valeurs qu’on peut représenter en
SVA est : [-(2n-1 - 1), +(2n-1 - 1)].
Cette méthode présente deux inconvénients :
• Le zéro possède deux (2) représentations distinctes 0000 et 1000 soit +0 et -0;
• Les tables d'additions et de multiplication sont compliquées, à cause du bit de signe qui
doit être traité à part.
10.2 Représentation des nombres négatifs en CP1 (Complément à 1)
En binaire, on forme le complément à 1 (CP1) d’un nombre en soustrayant de 1chaque bit de
ce nombre. Donc pour obtenir le complément a 1 d’un nombre binaire, il suffit de
complémenter (ou d’inverser) chaque bit. Le 1 devient 0 et le 0 devient 1.
Exemple :
N= 1 0 0 0 1 1 1 0(2) → 0 1 1 1 0 0 0 1(2)
N= 0 0 1 1 0(2) → 1 1 0 0 1(2)
Remarque :
➢ la somme d’un nombre binaire et de son complément à 1 est un nombre binaire composé
uniquement de 1.
➢ Le bit de poids fort est utilisé pour représenter le signe du nombre :
• Si ce bit = 1 alors il s’agit d’un nombre négatif
• Si ce bit = 0 alors le nombre est positif.
Question :
Quelle est la valeur décimale du nombre binaire suivant : 10110110 ?
Réponse :
Le bit de poids fort indique qu'il s'agit d'un nombre négatif. Donc la Valeur décimale =
- CP1(10110110) = - (01001001)2= - (73)10
Question :
Quels sont les nombres qu’on peut représenter sur 04 bits
Tableau 6 : Représentation des nombres par la méthode CP1
D’après le tableau 6, on peut déduire que sur 4 bits :
➢ Le plus grand nombre positif représentable est donc 0111 ce qui représente 23 – 1 soit +7
➢ Le plus petit négatif est -0111. Ce qui donne – (23 -1) soit -7
Réponse :
Donc, on constate que sur 04 bits, on peut représenter les nombres qui sont dans l’intervalle [-
7(10),+7(10)], soit [-(23 - 1) , +(23 - 1)]
Plus généralement, si on travaille sur n bits, l’intervalle des valeurs qu’on peut représenter en
CP1 est : [-(2n-1 - 1), +(2n-1 - 1)].
Limite de la méthode :
Même cas pour la méthode SVA, le zéro possède deux (2) représentations distinctes. Par
exemple sur 8 bits +0(10)=00000000(2), -0(10)= cp1(00000000)= 11111111(2)
10.3 Représentation des nombres négatifs en CP2 (Complément à 2)
Il existe trois méthodes pour calculer le complément à 2 (CP2) d’un nombre binaire.
10.3.1 Première méthode :
La première consiste à le soustraire à la puissance de 2 immédiatement supérieure. Par
exemple : trouver le complément à 2 du nombre N= 1 0 0 0 1 1 1 0(2),
100000000
- 10001110
01110010
Donc CP2(N) = 0 1 1 1 0 0 1 0
10.3.2 Deuxième méthode :
Elle consiste à trouver d’abord le complément à 1 et à ajouter 1 au résultat. Par exemple :
N= 1 0 0 0 1 1 1 0(2), CP1(N) = 0 1 1 1 0 0 0 1
01110001
+ 1
01110010
Donc CP2(N) = 0 1 1 1 0 0 1 0
10.3.3 Troisième méthode
Consiste à conserver tous les bits à partir de la droite jusqu’au premier 1 compris et de
changer les autres bits de 1 à 0 ou de 0 à 1. Pour l’exemple précédent, on obtient :
CP2(1 0 0 0 1 1 1 0)= 0 1 1 1 0 0 1 0 → bits conservés
Question :
Quelle est la valeur décimale du nombre binaire suivant : 10110110 ?
Réponse :
Le bit de poids fort indique qu'il s'agit d'un nombre négatif. Donc la Valeur décimale =
- CP1(10110110) = - (01001010)2= - (74)10
Question :
Quels sont les nombres qu’on peut représenter sur 04 bits ?
Tableau 7 : Représentation des nombres par la méthode CP2
Sachant que le bit du poids fort est utilisé pour représenter le signe du nombre, on peut
déduire que sur 4 bits :
➢ Le plus grand nombre positif représentable est donc 0111 ce qui représente 23 – 1 soit +7
➢ Le plus petit négatif est codé par 1000, ce qui donne la valeur binaire -1000, soit -8(-23 )
en décimal.
Réponse :
Donc, d’après le tableau 7, on constate que sur 04 bits, on peut représenter les nombres qui
sont dans l’intervalle [-8(10),+7(10)], soit [-23 , +(23 - 1)]
Plus généralement, si on travaille sur n bits, l’intervalle des valeurs qu’on peut représenter en
CP2 est : [-(2n-1 ), +(2n-1 - 1)].
Avantage :
Un seul codage pour le nombre 0. Par exemple sur 8 bits :
+0 (10) = 00000000(2), -0(10)=cp2(00000000)=00000000(2)
10.4 Soustraction en base 2 en utilisant les compléments
Avant de faire une soustraction en complément à 1 ou 2 il faut s’assurer que le diminuteur et
le diminuende ont le même nombre de bits. Cette remarque est très importante sinon on ne
retrouve pas le résultat de la soustraction.
10.4.1 Soustraction par complémentation à 1.
➢ La soustraction par complément à 1 revient à calculer le complément à 1 du diminuteur
ensuite l’ajouter au diminuende. La dernière retenue est ajoutée au résultat.
➢ Lorsque le dernier bit du résultat (poids fort)=1, cela veux dire que le résultat est négatif.
On calcule donc le complément à 1 de ce dernier afin d’obtenir le résultat final.
Exemple 1:
Effectuons sur 5 bits, l'opération (+8) + (- 9).
Solution:
Les nombres doivent être sur 5 bits y compris le bit de signe
(+8) = 01000(2)
(+9) = 01001(2)
Le complément à 1 de 01001 est 10110 = - 9(10)
Le bit du signe =1 → résultat négatif → le résultat = - Cp1(11110).
Dans ce cas, calculons le complément à 1 du résultat
Cp1(11110)=00001(2). Cela veux dire que le résultat = -1(2)
Exemple 2: toujours sur 8 bits effectuons l’opération : (-8) + (-9)
Solution :
Dans ce cas chaque nombre est représenté par son complément à 1 :
(+8) = 01000, (-8)= cp1(01000)=10111
(+9) = 01001, (-9)= cp1(01001)=10110
1
1 0 1 1 1
1 0 1 1 0
0 1 1 0 1
+ 1
0 1 1 1 0
Remarque 1:
Nous remarquons que le dernier bit du résultat = zero. Ce qui veux dire que le résultat est
positif. Hors, l’addition de deux nombres négatifs ne peut donner qu’un nombre négatif !!!.
Ce cas s’appelle « dépassement » , en anglais, « overflow ». Il résulte du fait que sur 5 bits on
ne peux représenter que les nombres qui sont dans l’intervalle [-15 , 15] (voir la section 8.2)
alors que -8-9 donne -17 qui est hors intervalle.
Remarque 2
Dans l’addition arithmétique signée, par exemple (A+B), on dit qu’il y a débordement si et
seulement si les deux opérandes A et B sont de même signe et le résultat S est de signe
différent.
10.4.2 Soustraction par complément à 2
➢ Complémenter le diminuteur ensuite l’ajouter au diminuende. La dernière retenue est
ignorée.
➢ Tout comme la méthode du complément à 1, lorsque le dernier bit du résultat (poids
fort)=1, cela veux dire que le résultat est négatif. On calcule donc le complément à 2 de ce
dernier afin d’obtenir le résultat final.
Exemple 3:
Effectuons la même opération en complément à 2. (+8) - (+9).
Solution
(+8) = 01000(2) , (+9) = 01001(2)
Le complément à 2 de 01001 est 10111 = -9
Le bit du signe =1 → résultat négatif → le résultat = - Cp2(11111).
Dans ce cas, calculons le complément à 1 du résultat :
Cp2(11111)=00001(2). Cela veux dire que le résultat = -1(2)
11 Les Nombres Réels
11.1 Représentation en virgule fixe
Soit un nombre N tel que N= - 1010,1001(2). Le codage du nombre en virgule fixe consiste à
définir la position de la virgule selon un format donné, c’est-à-dire la taille de la partie
entière ainsi que la taille de partie fractionnaire. Les bits à gauche de la virgule représentent
la partie entière signée du nombre tandis que la partie droite représente la parie fractionnaire.
Dans l’exemple ci-dessous (tableau 8), la partie entière signée est sur 8 bits et la partie
fractionnaire sur 8 bits.
1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0
signe Partie entière Partie fractionnaire
Tableau 8 : Représentation d’un nombre réel par la méthode de la virgule fixe
Exemple :
1. Représenter le nombre réel ( -6.125 ) en format virgule fixe (1 bit de signe, 8 bit pour la
partie entière et 7 bits pour la partie fractionnaire.
2. Quelle est le plus petit nombre positif représentable dans ce format.
3. Quelle est le plus grand nombre positif représentable dans le même format.
Solution :
1. Il faut d’abord convertir le nombre en binaire pour pouvoir le représenter en machine. On
a : -6.125(10)= - 110,001(2).On représente donc le nombre selon le format indiqué. On
obtient donc : 1|00000110|0010000
2. le plus petit nombre positif est représenté comme suit :
0|00000000|0000001 ce qui donne la valeur Nmin=2-7
3. le plus grand nombre positif est représenté comme suit :
0|11111111|1111111
Pour donner l’équivalent en décimale, calculons la partie entière max (PEmax) et la partie
fractionnaire max (PFmax).
PEmax=20+21+…+27= 28-1
PFmax =2-1+2-2+…+2-7=1- 2-7
Nmax=PE max=+PF max=28-1 +1- 2-7= 28- 2-7
11.2 Représentation en virgule flottante
Il existe plusieurs formats de représentation en virgule flottante proposés par l'IEEE (Institute
of Electrical and Electronics Engineers) et qui ont été adoptés par les fabricants de
microprocesseurs, parmi ces formats, on cite :
▪ Le format simple précision, utilisant 32 bits.
▪ Le format double précision, utilisant 64 bits.
▪ Les formats étendus à simple et à double précision.
Le lecteur intéressé pourra se reporter aux nombreuses références sur le sujet [1-3]. En ce qui
suit, nous allons décrire les différentes méthodes de représentation des nombres réels en
virgule flottante.
11.2.1 Par la méthode de l’exposant réel.
Il existe deux méthodes pour représenter les nombres réels en virgule flottante. La première
consiste à représenter un nombre N par un bit de signe (0 si N est positif, 1 sinon),
une mantisse M (qui doit être normalisée) et un exposant Exp (entier positif ou négatif). Le
nombre N est donc écrit sous la forme suivante :
N= ±|M| x 2Exp avec 0.1(2)≤ |M| <1(2)
Selon le type de machine, un certain nombre de bit est réservé pour la mantisse ainsi que pour
l’exposant.
Exemple1 : Représenter N= - 1010,1001(2) sur 16 bits en format virgule flottante (12 bits
pour la mantisse, 4 bits pour l’exposant et 1 bit pour le signe de la mantisse).
Solution :
On commence par normaliser la mantisse :
N= - 1010,1001(2) =-0.10101001(2) x 2+4. (+4 représente le nombre de déplacement de la
virgule vers la gauche).
Dans ce cas : M= - 0.10101001(2) et Exp= + 4(10) =0100(2)
1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0
Signe Exp Mantisse
Tableau 9 : Représentation d’un nombre réel par la méthode de la virgule flottante –exposant positif-
Exemple2 : représenter N= - 0,001001(2) sur 16 bits en format virgule flottante (12 bits pour
la mantisse, 4 bits pour l’exposant et 1 bit pour le signe de la mantisse).
Solution :
On commence par normaliser la mantisse :
N= - 0,001001( (2) =- 0.1001(2) x 2-2. (-2 représente le nombre de déplacement de la virgule
vers la droite).
Dans ce cas : M=- 0.1001(2) et Exp=-2(10)
En virgule flottante, les exposants négatifs sont représentés par la méthode du complément à 2
(voir la section 8.3).
|Exp|= +2(10) =0100(2)
Exp=-2=CP2(0100) =1100(2)
1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0
Signe (1 bit) Exp (4 bits) Mantisse (12 bits)
Tableau 10 : Représentation d’un nombre réel par la méthode de la virgule flottante –exposant négatif-
Remarque : le bit le plus à gauche de l’exposant représente le bit du signe.
11.2.2 Par la méthode de l’exposant Biaisé.
La deuxième méthode de la représentation des nombres réels en format virgule flottante
consiste toujours à représenter le nombre N sous la forme : N= ±|M| x 2Exp_biaise tel que
0.1(2)≤ |M| <1(2). Mais cette fois-ci, il ne s’agit pas de représenter l’exposant réel mais un autre
exposant dit baisé. Ce dernier est calculé en fonction de l’exposant réel comme suit :
Exp_biaisé =Exp + biais tel que biais= 2n/2=2 (n -1).
n est le nombre de bit de l’exposant.
La valeur du biais ajoutée, rend la valeur de l’exposant biaisé toujours positif.
Exemple : Prenons le même exemple précédent.
N= - 0,001001( (2) =- 0.1001(2) x2-2
M=- 0.1001(2) et Exp=-2(10)
Calculons maintenant la valeur de l’exposant biaisé :
Exp_biaisé =-2 + (24/2) =2 + 8 =10(10) =1010(2)
Ce nombre est représenté comme suit dans le format suivant : 12 bits pour la mantisse, 4 bits
pour l’exposant biaisé et 1 bit pour le signe de la mantisse.
1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0
Signe (1 bit) Exp_biaisé (4 bits) Mantisse (12 bits)
Tableau 11 : Représentation d’un nombre réel par la méthode de la virgule flottante –exposant biaisé-
Remarque : Exp_biaisé est toujours positif donc à l’inverse du cas précédent, le bit le plus à
gauche de l’exposant biaisé ne représente pas le bit du signe mais il fait parti de la valeur.
Démonstration
On a déjà démontré dans la section 8.3 que dans méthode du complément à 2, l’intervalle des
valeurs qu’on peut représenter sur n bits est:
- 2 (n -1) ≤ N ≤ 2 (n -1) -1
Si on rajoute la valeur 2 (n -1) à tous les termes de cette inégalité, on obtient :
- 2 (n -1) + 2 (n -1) ≤ N + 2 (n -1) ≤ 2 (n -1) - 1 + 2 (n -1) = 0 ≤ N + 2 (n -1) ≤ 2 n – 1
• On pose N’= N + 2 (n -1), on aura donc : 0 ≤ N’ ≤ 2 n -1. Dans ce cas on obtient que des
valeurs positives. La valeur 2n-1 s’appelle le biais ou le décalage.
Remarque :
Si la mantisse est sur k bits et si elle est représenté sur la machine sur k’ bits tel que k> k’ ,
alors la mantisse sera tronquée : on va prendre uniquement k’ bits.
11.3 Arithmétique
Soit deux nombres réels N1 et N2 tel que : N1=M1 * 2exp1 et N2=M2 * 2exp2. On veut
calculer N1+N2 ? Deux cas se présentent :
• Si exp1 = exp2 alors N3= (M1+M2) bexp1
• Si exp1 exp2 alors élever au plus grand exposant et faire l’addition des mantisses et
par la suite normaliser la mantisse du résultat.
Exemple : soient les deux nombres suivants :
N1=0,001101(2) , N2=1, 101(2)
Représenter N1+N2 en format virgule flottante selon le format suivant : (12 bits pour la
mantisse, 4 bits pour l’exposant et 1 bit pour le signe de la mantisse).
Solution
On normalise d’abord les mantisses pour cela :
N1=0,1101 *2-2 , N2=0,1101 *21
N1+N2= 0,1101 *2-2 +0,1101 *21
= 0,0001101 *21 + 0,1101 *21
= 0, 1110101 * 21
Dans ce cas, N1+N2 est représenté comme suit :
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0
Signe(1 bit) Exposant (4 bits) Mantisse (12 bits)
Tableau 12 : Addition de deux nombres réels en virgule flottante
La soustraction est faite de la même manière.
13 Conclusion
Dans cet t e s e c t i o n , nous avons présenté les systèmes de numération les plus utilisés dans
les systèmes numériques notamment le système binaire, octal et hexadécimal. Aussi, nous
avons étudié les opérations de codage, décodage, conversion de codes ainsi que la réalisation
des opérations arithmétiques. Nous avons étudié aussi le codage ainsi que l’arithmétique dans
les nombres réels. Dans le chapitre suivant nous allons étudier d’autres codes permettant
la représentation des caractères alphanumériques.
II- Représentation des caractères
La représentation des caractères est fondamentale. Les lettres de l'alphabet latin et un certain nombre
de caractères usuels sont représentés par un octet, selon un code qui est le plus souvent le code ASCII
(Tableau 13). Par exemple, dans ce code, la lettre “a” est représentée par 010000002 et le chiffre “9”
par 001110012.
Tableau 13 : Codage ASCII