Vous êtes sur la page 1sur 107

Représentation de

l'information en binaire:
Les nombres réels

Emmanuelle Peuch
Légende: icônes
Cliquer pour avoir la suite du
texte

Cliquer pour passer à la page


suivante
Cliquer pour revenir à la page
précédente
Cliquer pour revenir à la table
des matières
Texte souligné : cliquer sur le
Lien hypertexte
lien hypertexte
Cliquer pour revenir à la page
appelante (retour d'un lien
hypertexte)
Table des matières
I. Représentation en virgule fixe
1. Définition
2. Conversion: approfondissement

II. Représentation en virgule flottante


1. Système décimal: rappel
2. Système binaire

III. Etendue des nombres en virgule flottant


e

3
IV. Format double précision

IV. Exercices
1. Représentation en virgule fixe
2. Représentation en virgule flottante
3. Addition et soustraction des nombres
flottants (IEEE754)

4
I. Représentation en
virgule fixe
• Définition
1. Définition
La représentation en virgule fixe (ou format fixe)
d'un nombre binaire sur N bits comprend une
partie entière suivie d'une partie fractionnaire:

Nombre sur N bits

bN-1-k ...b1b0 b-1b-2...b-k

Partie
Partie entière fractionnaire
sur k bits

6
1. Définition
 Les réels pouvant être, bien sûr, positif ou
négatif, c'est la convention complément
à deux qui est utilisée pour représenter
ces nombres en binaire.

 Pour convertir la partie fractionnaire


(décimal en binaire ou inversement), on
utilise les puissances de 2 négatives.

7
1. Définition
Application Conversion binaire – décimal d'une partie
fractionnaire

Convertissons (0,101)b

Partie fractionnaire
Le procédé est le même
qu'avec les nombres
1 0 1
entiers, mais avec des
puissances de 2 négatives!
-2
1.2-1 + 0.2 + 1.2-3

 Quelques puissances de 2 néga

8
1. Définition
La partie fractionnaire (101)b est donc, en base
10:

1.2-1 + 1.2-3 = 0,5 + 0,125 = 0,625

9
1. Définition
Application Conversion décimal - binaire d'une partie
fractionnaire

Inversement, convertissons (0,625)d en binaire:

 On peut décomposer la partie fractionnaire


en puissance de 2 négatives.

0,625 = 0,5 + 0,125 = 2-1 +0.2-2 + 2-3 = (101)b

10
1. Définition
 On peut aussi utiliser la méthode de la
multiplication répétée par 2

0,625 0,250 0,500


2 2 2
1,250 0,500 1,0
Arrêt

Poids 2-1 2-2 2-3

(0,625)d = 1.2-1 + 0.2-2 + 1.2-3


= (101)b

11
I. Représentation en
virgule fixe
• Conversion:
approfondissement
2. Conversion: approfondissement
 On se fixe tout d'abord un format de travail.
Prenons un format N = 8 bits
k = 5 chiffres après la virgule

Pour la partie entière on dispose donc de 3 bits:


 Un bit de signe (poids fort)
 2 bits pour coder sa valeur

N'oublions pas qu'on utilise la convention


complément à 2 !

13
2. Conversion: approfondissement
Application
Convertir le chiffre décimal +3,5

 Partie entière
On utilise la méthode de conversion des entiers
signés:

(3)d = (011)b

14
2. Conversion: approfondissement

 Partie fractionnaire (0,5)d


Rappel: 5 bits pour la partie fractionnaire

(0,5)d = 2-1

Sur 5 bits cela nous donne donc (1 0000)d

2-1 2-2 ...

15
2. Conversion: approfondissement
 Conclusion
Le nombre à convertir étant positif, nous n'avons
pas besoin de déterminer son complément à 2.

Partie entière Partie fractionnaire

+3,5 0 1 1 1 0 0 0 0

Le bit de signe est à 0: nombre


positif.

16
2. Conversion: approfondissement
Application

Convertir le chiffre décimal -1,46876

 Valeur absolue de la partie entière

(+1)d = (001)b

 Partie fractionnaire

(+0,46875)d = (0 1111)b


Détail du
calcul
17
2. Conversion: approfondissement
 Le nombre à convertir étant négatif, il faut
déterminer le complément à 2 de ce dernier:

+1,46876 0 0 1 0 1 1 1 1

Cp 1
1 1 0 1 0 0 0 0

+1
1 1 0 1 0 0 0 1

18
2. Conversion: approfondissement
 Conclusion

Partie entière Partie fractionnaire

-1,46876 1 1 0 1 0 0 0 1

Le bit de signe est à 1: nombre


négatif.

19
2. Conversion: approfondissement
 Conversion binaire - décimal
Il suffit de faire le chemin inverse
Bit de signe = 0 (nombre positif)
On convertit séparément partie entière et partie
fractionnaire en décimal.

Bit de signe = 1 (nombre négatif)


On détermine au préalable le complément à 2
du nombre binaire complet.
Puis on convertit séparément partie entière et
partie fractionnaire en décimal.

20
2. Conversion: approfondissement
 Arithmétique binaire
L'addition (et donc la soustraction puisqu'on est
en convention complément à 2) de nombres
fractionnaires en virgule fixe se fait sur le même
principe qu'en base 10: on aligne les virgule.

21
2. Conversion: approfondissement
 Echelle des valeurs
Quels nombres peut on coder en format virgule
fixe?

Reprenons notre exemple précédent:

Format: N = 8 bits
k = 5 chiffres après la virgule
Virgule fixe

22
2. Conversion: approfondissement
 Partie entière
On dispose de trois bits:

Bit de signe
Codage de la
partie entière

On est en convention complément à 2

L'étendue de la partie entière va donc de


- 4 à + 3.

23
2. Conversion: approfondissement
 Partie fractionnaire
On dispose de cinq bits:

Sa valeur maximale est donc:


2-1 + 2-2 + … + 2-5 = 0,96875

 Conclusion
En format 8 bits, avec 5 bits pour la partie
fractionnaire, l'échelle des valeurs est:
- 4 à + 3,96875.

24
2. Conversion: approfondissement
 Inconvénient du format à virgule fixe
Soit à convertir (+1,5)d:

+1,5 0 0 1 1 0 0 0 0

On remarque que, pour de petits nombres, il peut


y avoir un gaspillage de bits pour la partie entière
(beaucoup de 0 en poids fort non utiles).
Pour des nombres à peu de décimales, il y a un
gaspillage de bits pour la partie fractionnaire
(beaucoup de 0 à droite de la virgule non utiles).

25
2.Conversion: approfondissement
On peut alors utiliser la représentation en virgule
flottante (ou format flottant).

Ce format est basé sur l'écriture des nombres à


l'aide d'une mantisse et d'un exposant.

C'est le principe utilisé par la notation scientifique


des réels dans notre système décimal. Nous
commencerons donc par rappeler cette notation en
base 10.

26
II. Représentation en
virgule flottante
• Système décimal:
rappel
1. Système décimal: rappel
 Notation scientifique
Un nombre réel X est représenté par une mantisse
m et un exposant e:

Exposant

e
X = m.10
Mantisse

28
1. Système décimal: rappel
Exemple
Ecriture en notation scientifique
Exposant

 X = 0,006234 = 0,006234.100

Mantisse

En notation scientifique, on écrit la mantisse


sur un seul chiffre différent de zéro:

Ici on écrit donc 6,234 au lieu de 0,006234


On dit qu'on normalise le nombre.

29
1. Système décimal: rappel
 Pour normaliser ce nombre, on a effectué 3 décalages
vers la droite de la virgule: on a multiplié la
mantisse 3 fois par 10.

 Il faut donc retrancher 3 de l'exposant.

 La notation scientifique du nombre X est alors:


X = 6,234.10-3
Ou encore X = 6,234 E -3

Comparez les notations fixe et scientifique de votre


calculatrice!

30
1. Système décimal: rappel
Exemple
Autre exemple
Exposant

 X = 91234,56 = 91234,56.100

Mantisse

 Pour normaliser le nombre on effectue 4 décalage


vers la gauche de la virgule (on divise 4 fois la
mantisse par 10).
 On ajoute donc 4 à l'exposant.
X = 9,123456.104 = 9,123456 E +4

31
II. Représentation en
virgule flottante
• Système binaire
2. Système binaire
On utilise la même technique que dans le
système décimal, mais en travaillant en base 2 !

 Notation scientifique
Un nombre binaire Y est représenté par une
mantisse M et un exposant E:
Exposant

Y = M.2E
Mantisse

33
2. Système binaire
 Un nombre binaire flottant est donc
constitué:
- d'un signe
- d'une mantisse
- d'un exposant

 Nous présenterons ici la norme IEE 754.


Cette norme définit un format standard qu'on
retrouve dans pratiquement tous les ordinateurs
depuis 1980.

34
2. Système binaire
Elle propose deux formats de représentation:

 Format 32 bits simple précision (type float)

 Format 64 bits double précision

Nous ne parlerons ici que du format


32 bits.

35
2. Système binaire
 Format 32 bits

31 30 23 22 0

S Exposant E Mantisse M

Bit de signe
8 bits 23 bits

32 bits

Il est inutile de ranger le chiffre 2 de la base 2 pour exprimer 2E


puisque c'est identique pour tous les nombres (implicite).

36
2. Système binaire
 Bit de signe S
S = 1 si la mantisse est négative.
S = 0 si la mantisse est positive.

 Exposant E sur 8 bits

Il est représenté en binaire décalé avec un


biais égal à 127 (translation de 127).

37
2. Système binaire
Correspondance entre l'exposant réel (sur 8 bits
en signé) et l'exposant biaisé (sur 8 bits):

-127 0 128
Eréel

E 0 127 255
translation de
+ 127

E = Eréel + 127

38
2. Système binaire
Exemple

L'exposant Eréel = +35 sera représenté par:


E = +35 + 127 = 162 = (1010 0100)b
L'exposant Eréel = +1 sera représenté par:
E = +1 + 127 = 128 = (1000 0000)b
L'exposant Eréel = 0 sera représenté par:
E = 0 + 127 = 127 = (0111 1111)b
L'exposant Eréel = -35 sera représenté par:
E = -35 + 127 = 92 = (0101 1100)b

39
2. Système binaire
L'exposant biaisé E est donc un nombre non
signé sur 8 bits avec E = Eréel + 127.

On remarque alors que:


- Le bit de poids fort de l'exposant biaisé E est
à 1 quand l'exposant Eréel est strictement
positif (E > 127).

- Le bit de poids fort de l'exposant biaisé E est


à 0 quand l'exposant Eréel est négatif (E 
127).

40
2. Système binaire
Il est à noter que la norme IEEE 754, en
dehors du format normalisé, admet des
codages spécifiques pour la représentation des
valeurs 0, +, - ainsi que des représentations
dénormalisées.

Nous ne parlerons pour l'instant que du format


normalisé.
Retenons alors que l'exposant réel peut
prendre les valeurs entre – 126 et + 127.

41
2. Système binaire
Valeurs de l'exposant en format normalisé

E réel E biaisé (Eréel + 127)


127 254 = (1111 1110)b
126 253 = (1111 1101)b
. .
. .
. .

1 128 = (1000 0000)b


0 127 = (0111 1111)b
-1 126 = (0111 1110)b
. .
. .
. .

-126 1 = (0000 0001)b

42
2. Système binaire
 Mantisse M sur 23 bits
La mantisse est normalisée sous la forme:
1 m-1 m-2 … m-23

Virgule

La partie entière étant toujours égale à 1 elle


n'est pas représentée (implicite): c'est le bit
caché (hidden bit).
La mantisse M sur 23 bits ne représente
donc que la partie fractionnaire.

43
2. Système binaire
Pour normaliser la mantisse on procède
comme en base 10.

 Décaler à droite la virgule (multiplier


par 2 la mantisse).
Il faut donc retrancher 1 à l'exposant.

 Décaler à gauche la virgule (diviser par


2 la mantisse).
Il faut donc ajouter 1 à l'exposant.

44
2. Système binaire

La mantisse représente toujours la valeur


absolue du nombre (on n'utilise pas la
notation complément à 2).

45
2. Système binaire
Exemple
Conversion de (- 1039)d

 On convertit (+ 1039)d en binaire


(1039)d = (0100 0000 1111)b
= (0100 0000 1111)b . 20
 On normalise le nombre pour le mettre sous
la forme:
1 m-1 m-2 … m-23

Virgule

46
2. Système binaire
(0100 0000 1111)b . 20
Virgule

 On décale la virgule à gauche 10 fois.


 On incrémente l'exposant de 10.

10
1039 1 00 0000 1111 . 2
Implicite donc non
présent dans la Mantisse à exprimer sur
mantisse 23 bits

47
2. Système binaire
 Exposant E sur 8 bits
Translation de + 127 de Eréel = 10

E = 10 + 127 = (137)d
= (1000 1001)b

 Bit de signe S du nombre


Nombre négatif (-1039) donc S = 1

48
2. Système binaire
 Conclusion

- 1039 1 1000 1001 000 0001 1110 0000 0000 0000

Exposant Mantisse sur 23 bits


Bit de signe sur 8 bits

49
2. Système binaire
Exemple
Convertissons le nombre réel binaire suivant
en décimal

0 0001 0011 101 1000 0000 0000 0000 0000

Exposant Mantisse sur 23 bits


Bit de signe sur 8 bits

 Bit de signe:
S = 0 donc nombre positif

50
2. Système binaire
0 0001 0011 101 1000 0000 0000 0000 0000

Exposant Mantisse sur 23 bits


Bit de signe sur 8 bits

 Exposant biaisé E:

E = (0001 0011)b = (11)d

Donc Eréel = E – 127 = 11 – 127 = - 116

51
2. Système binaire
0 0001 0011 101 1000 0000 0000 0000 0000

Exposant Mantisse sur 23 bits


Bit de signe sur 8 bits

 Mantisse:
N'oublions pas le bit caché!
M = (1,101 1000 0000 0000 0000 0000)b
Bit caché

M = 20 + 2-1 + 2-3 + 2-4


= 1,6875

52
2. Système binaire
0 0001 0011 101 1000 0000 0000 0000 0000

Exposant Mantisse sur 23 bits


Bit de signe sur 8 bits

 Conclusion

Le nombre réel est donc, en base dix:


X = + 1,6875 . 2-116  1,20371.10-35

53
III. Etendue des
nombres en virgule
flottante
III.Etendue des nombres
Quels nombres peut-on exprimer en format
NORMALISE simple précision (32 bits)?

 Exposant Eréel
Il varie de -126 à + 127.
L'exposant E biaisé varie donc de 1 à 254.

 Mantisse
Mmin = (1,000 0000 0000 0000 0000 0000)b

Mmax = (1,111 1111 1111 1111 1111 1111)b

55
III.Etendue des nombres
 Le plus petit réel représentable dans ce
format est :

Ymin = (1,000 0000 0000 0000 0000 0000)b . 2-126


= 2-126
 1,17549.10-38

Il est à noter que nous avons la même valeur en


négatif (bit de signe S = 1)!

56
III.Etendue des nombres
 Le plus grand réel représentable dans ce
format est :

Ymax = (1,111 1111 1111 1111 1111 1111)b . 2127


= (1+2-1+2-2+…+2-23) . 2127

Or (1+2-1+2-2+…+2-23) = S24 est la somme des 24


premiers termes d'une suite géométrique de raison 2-1.

1  (2 1 )24
S 24   2  2 23
1  2 1

57
III.Etendue des nombres
Ymax = (1+2-1+2-2+…+2-23) . 2127
= (2 – 2-23) . 2127
 3,40282 . 1038

 Etendue des nombres réels normalisés


Nombres négatifs Nombres positifs
normalisés exprimables normalisés exprimables

Zéro

-(2-2-23) . 2127 -2-126 0 2-126 (2-2-23) . 2127

58
III.Etendue des nombres
 Codages de zéro
Nous avons vu que la valeur minimale de l'exposant
était Eréel = -126 (pour les valeurs normalisées).
On utilise alors l'exposant Eréel = - 127 (E biaisé = 0)
et une mantisse nulle pour coder 0. On obtient donc
deux représentation de zéro:

0 0000 0000 000 0000 0000 0000 0000 0000

S E biaisé Mantisse

1 0000 0000 000 0000 0000 0000 0000 0000

59
III.Etendue des nombres
 Codages de l'infini
Nous avons vu que la valeur maximale de l'exposant
était Eréel = 127.
On utilise alors l'exposant Eréel = 128 (E biaisé =
255) et une mantisse nulle pour coder l'infini.

+¥ 0 1111 1111 000 0000 0000 0000 0000 0000

S E biaisé Mantisse

-¥ 1 1111 1111 000 0000 0000 0000 0000 0000

60
III.Etendue des nombres
 Résumé

2 codages du
Zéro

-2-127 2-127

Nombres négatifs Nombres positifs


normalisés exprimables normalisés exprimables

-2128 2128
Codage Codage
de -¥ de +¥

-(2-2-23) . 2127 -2-126 0 2-126 (2-2-23) . 2127

61
III.Etendue des nombres
 Autres codages
Bit S E réel E biaisé Mantisse Codage de:
0 128 255 0 NaN
1 128 255 0 NaN
0 -127 0 0 valeurs
dénormalisées
1 -127 0 0 valeurs
dénormalisées

NaN = Not A Number: codes qui permettent de


signaliser des erreurs comme par exemple une
division par 0.

62
IV. Format double
précision
IV.Format double précision
En double précision, le format est de 64 bits.
S Ebiasié Partie fractionnaire
Exposant
biaisé sur Mantisse sur 52 bits
Bit de signe
11 bits

 Exposant Ebiaisé: sur 11 bits


Le biais est de 210 – 1 = 1023

 Mantisse
La partie fractionnaire s'exprime sur 52 bits. Le bit
caché est toujours 1.

64
V. Exercices
1. Représentation en virgule fixe
Exercice 1 - Convertir les nombres suivants en
binaire, virgule fixe:
+ 1,625
+ 3,96875
- 3,96875
+ 2,134

Format utilisé
- Représentation sur 8 bits
- 5 chiffres après la virgule
solution

66
1. Représentation en virgule fixe
Exercice 2 - Convertir les nombres binaire,
virgule fixe suivants en décimal:
010,01010
101,11011

solution

67
2. Représentation en virgule
flottante
Exercice 1
Convertir les nombres réels suivants en nombres
binaire: norme IEEE754 simple précision
(128)d
(- 32,75)d
(0,0625)d

solution

68
2. Représentation en virgule
flottante
Exercice 2
Convertir les nombres réels binaires suivants en
décimal (norme IEEE754 simple précision):
1 0111 1010 100 0000 0000 0000 0000 0000
0 1010 1010 110 0000 0000 0000 0000 0000
1 1000 0011 111 0000 0000 0000 0000 0000
0 0111 0101 000 0000 0000 0000 0000 0000

solution

69
3. Addition et soustraction des
nombres flottants (IEEE754)
Soit X = 10,5 et Y = 3,5.
 Convertir ces nombres en binaire: format
simple précision.
 Calculer en binaire X+Y, -X+Y, X-Y, -X-Y.
 Vérifier vos résultats en les convertissant dans
le système décimal.

1- Comme dans le système décimal il faut aligner


les exposants sur le plus grand.

solution
70
3. Addition et soustraction des nombres
flottants (IEEE754)
Une fois que les exposants sont identiques, on
peut ajouter les mantisses.
2- Lorsqu'une mantisse représente un nombre
négatif, on calcule son complément à 2 (Ce qui
permet de ne faire que des sommes binaires!). On
ajoute ensuite les mantisses.
3- Si la valeur absolue du nombre négatif est le plus
grand, le résultat de la somme binaire représente
un nombre négatif. Il faut alors calculer le
complément à 2 du résultat.
4- Il faut normaliser le résultat de l'opération si
nécessaire.
solution
71
FIN

72
Emmanuelle Peuch
Quelques puissances de 2 négatives

2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8

0,5 0,25 0,125 0,0625 0,03125 0,015625 0,0078125 0,00390625

73
Solution
Conversion de la partie fractionnaire
de – 1,46876
Utilisons la méthode de la multiplication par 2:

0,46876 0,93752 0,87504 0,75008


2 2 2 2
0,93752 1,87504 1,75008 1,50016

2-1 2-2 2 -3 2-4

0,50016
2
1,00032 Arrêt car format de 5
bits après la virgule
2-5

74
Exercice
1 Représentation en virgule fixe
 Intéressons nous tout d'abord à l'étendue des
nombres représentables dans ce format:
 Format 8 bits et 5 chiffres pour la partie fractionnaire.
D'où 3 bits pour représenter la partie entière. Le bit
de poids fort représente le bit de signe et on est en
convention complément à 2.
La partie entière représentable va donc de -4 à +3.

 La partie fractionnaire maximale est:


2-1 + 2-2 + … + 2-5 = 0,96875
 L'étendue des nombres représentables dans ce format
est donc:
- 4 à + 3,96875

75
Exercice
1 Représentation en virgule fixe
 Conversion de 1,625
 Partie entière (3 bits)
(1)d = (001)b
 Partie fractionnaire (5 bits)
0,625 0,250 0,5
2 2 2
1,250 0,500 1,0
Arrêt

2-1 2-2 2-3


 Solution
(1,625)d = (001,10100)b

76
Exercice
1 Représentation en virgule fixe
 Conversion de 3,96875
 Partie entière (3 bits)
(3)d = (011)b

 Partie fractionnaire (5 bits)


La partie fractionnaire maximale représentable
est 0,96875 = (0,11111)b.

 Solution
(3,96875)d = (011,11111)b

77
Exercice
1 Représentation en virgule fixe
 Conversion de - 3,96875
 Nous venons de voir que:
(+3,96875)d = (011,11111)b

 Nombres signés en convention complément à


2:
Cp 1
0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
+1

1 0 0 0 0 0 0 1

Solution:
(-3,96875)d = (100,00001)b

78
Exercice
1 Représentation en virgule fixe
 Conversion de 2,134
 Partie entière (3 bits)
(2)d = (010)b
 Partie fractionnaire (5 bits)
0,134 0,268 0,536 0,072 0,144
2 2 2 2 2
0,268 0,536 1,072 0,144 0,288

2-1 Arrêt car format de 5


bits après la virgule

 Solution
(2,134)d = (010,00100)b

79
Exercice
2 Représentation en virgule fixe
 010,01010
 Bit de signe (poids fort) à zéro: nombre positif

 Partie entière:
(010)b =(2)d
 Partie fractionnaire:
(01010)b = 2-2 + 2-4 = 0,25 + 0,0625
= 0,3125
 Solution:
(010,01010)b = (2,3125)d

80
Exercice
2 Représentation en virgule fixe

 101,11011
 Bit de signe (poids fort) à un: nombre négatif
Il faut donc prendre le complément à 2 de ce
nombre pour déterminer sa valeur absolue.
Cp 2
1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1

 Partie entière de la valeur absolue:


(010)b =(2)d

81
Exercice
2 Représentation en virgule fixe

 Partie fractionnaire de la valeur absolue:


(00101)b = 2-3 + 2-5 = 0,125 + 0,03125
= 0,15625

 Solution
(101,11011)b = (- 2,15625)b

82
Exercice
1 Représentation en virgule flottante

 (128)d
 Bit de signe (poids fort) à zéro: nombre positif

 On convertit 128 = 27 en binaire et on le


normalise:
(128)d = (1000 0000)b.20= (1,000 0000)b.27
Rappel: La partie fractionnaire de la mantisse est
sur 23 bits.
 Exposant biaisé:
E = Eréel + 127 = 7 + 127 = 134
= (1000 0110)b

83
Exercice
1 Représentation en virgule flottante

 Solution:

128 0 1000 0110 000 0000 0000 0000 0000 0000

S E biaisé Mantisse

84
Exercice
1 Représentation en virgule flottante

 (-32,75)d
 Bit de signe (poids fort) à un: nombre négatif

 Conversion de 32,75 en binaire:


(32)d = (10 0000)b

(0,075)d = 0,5 + 0,25 = 2-1 + 2-2


= (0,11)b
 Normalisation:
(32,75)d = (10 0000,11)b.20
= (1,000 0011)b.25

85
Exercice
1 Représentation en virgule flottante

 Exposant biaisé:
E = Eréel + 127 = 5 + 127 = 132
= (1000 0100)b
 Solution:

-32,75 1 1000 0100 000 0011 0000 0000 0000 0000

S E biaisé Mantisse

86
Exercice
1 Représentation en virgule flottante

 (0,0625)d
 Bit de signe (poids fort) à zéro: nombre positif

 Conversion de 0,0625 en binaire:

(0,0625)d = 2-4
= (0,0001)b
 Normalisation:
(0,0625)d = (0,0001)b.20
= (1,0000)b.2-4

87
Exercice
1 Représentation en virgule flottante

 Exposant biaisé:
E = Eréel + 127 = -4 + 127 = 123
= (0111 1011)b
 Solution:

0,0625 0 0111 1011 000 0000 0000 0000 0000 0000

S E biaisé Mantisse

88
Exercice
2 Représentation en virgule flottante

 1 0111 1010 100 0000 0000 0000 0000 0000

S E biaisé Mantisse

 Bit de signe: S = 1, nombre négatif

 Exposant réel Eréel:


E = (0111 1010)b = (122)d

Eréel = E - 127 = 122 – 127 = -5


 Mantisse:
Ne pas oublier le bit caché (chiffre 1 à gauche
de la virgule)

89
Exercice
2 Représentation en virgule flottante

(1,1)b = 1 + 2-1 = 1,5

 Solution:

Le nombre réel binaire est donc en base 10:


- 1,5 . 2-5 = - 1,5 + 0,03125 = - 0,046875

90
Exercice
2 Représentation en virgule flottante

 0 1010 1010 110 0000 0000 0000 0000 0000

S E biaisé Mantisse

 Bit de signe: S = 0, nombre positif

 Exposant réel Eréel:


E = (1010 1010)b = (170)d

Eréel = E - 127 = 170 – 127 = 43


 Mantisse:
(1,110)b = 1 + 2-1 + 2-2= 1,75

91
Exercice
2 Représentation en virgule flottante

 Solution:

Le nombre réel binaire est donc en base 10:


1,75 . 243  1,539316 . 1013

92
Exercice
2 Représentation en virgule flottante

 1 1000 0011 111 0000 0000 0000 0000 0000

S E biaisé Mantisse

 Bit de signe: S = 1, nombre négatif

 Exposant réel Eréel:


E = (1000 0011)b = (131)d

Eréel = E - 127 = 131 – 127 = 4


 Mantisse:
(1,111)b = 1 + 2-1 + 2-2 + 2-3= 1,875

93
Exercice
2 Représentation en virgule flottante

 Solution:

Le nombre réel binaire est donc en base 10:


1,875 . 24 = 30

94
Exercice
2 Représentation en virgule flottante

 0 0111 0101 000 0000 0000 0000 0000 0000

S E biaisé Mantisse

 Bit de signe: S = 0, nombre positif

 Exposant réel Eréel:


E = (0111 0101)b = (117)d

Eréel = E - 127 = 117 – 127 = -10


 Mantisse:
(1,000)b = 1

95
Exercice
2 Représentation en virgule flottante

 Solution:

Le nombre réel binaire est donc en base 10:


1. 2-10 = 9,7656250.10-4

96
Addition et soustraction des flottants

 Conversion de X = 10,5

X = (1010,1)b . 20= (1,0101)b . 23

Exposant E: E = Eréel + 127 = 3 + 127


= 130
= (1000 0010)b

X = 10,5 0 1000 0010 010 1000 0000 0000 0000 0000

-X 1 1000 0010 010 1000 0000 0000 0000 0000

97
Addition et soustraction des flottants

 Conversion de Y = 3,5

Y = (11,1)b . 20= (1,11)b . 21

Exposant E: E = Eréel + 127 = 1 + 127


= 128
= (1000 0000)b

Y = 3,5 0 1000 0000 110 0000 0000 0000 0000 0000

-Y 1 1000 0000 110 0000 0000 0000 0000 0000

98
Addition et soustraction des flottants
Quelle que soit l'opération à effectuer, il
faut d'abord aligner les exposants sur le
plus grand.

L'exposant E le plus grand est celui du nombre X:


EX – EY = 130 – 128 = 2

On ajoute donc 2 à l'exposant de Y et on décale


2 fois vers la gauche la virgule de la mantisse de
Y. On obtient:
Y = (1,11)b . 21
= (0,0111)b . 23

99
Addition et soustraction des flottants

 Calcul de X + Y
Les exposants étant les mêmes on fait la
somme des mantisses:
1,0101
+ 0,0111
1,1100 Déjà normalisé

X+Y 0 1000 0010 110 0000 0000 0000 0000 0000

(E = 130)

100
Addition et soustraction des flottants

Vérifions notre calcul en convertissant X+Y en


base 10:

X+Y 0 1000 0010 110 0000 0000 0000 0000 0000

(E = 130)

Eréel = 130 – 127 = 3

X + Y = (1,11)b . 23 = (1+2-1+2-2).23 = 14
Résultat
valide

101
Addition et soustraction des flottants

 Calcul de – X + Y
Il faut prendre le complément à 2 de la mantisse
de X:
Cp 2
1 0 1 0 1 0… 0 1 0 1 1 0…

0 1011 Complément à 2 de la mantisse de X


+ 0 0111 Mantisse de Y après alignement des exposants
1 0010 X > Y donc résultat négatif. Il faut calculer le Cp
à 2 pour revenir à la notation signe – valeur
absolue
Cp 2

0 1110

102
Addition et soustraction des flottants

La mantisse de - X + Y est donc:

M-X+Y 0,1110 Avec E = 130

Normalisation

1,1100 Avec E = 130 – 1 = 129

-X+Y 1 1000 0001 110 0000 0000 0000 0000 0000

(E = 129)

103
Addition et soustraction des flottants

Vérifions notre calcul en convertissant -X+Y en


base 10:
-X+Y 1 1000 0001 110 0000 0000 0000 0000 0000

(E = 129)

Eréel = 129 – 127 = 2

-X + Y = - (1,11)b . 22 =- (1+2-1+2-2).22 = -7
Résultat
valide

104
Addition et soustraction des flottants

 Calcul de X - Y
Il faut prendre le complément à 2 de la mantisse
de Y après alignement des exposants:
Cp 2
0 0 1 1 1 0… 1 1 0 0 1 0…

1 0101 Mantisse de X
+ 1 1001 Cp à 2 mantisse de Y après alignement des
exposants
0 1110 X > Y donc résultat positif.

105
Addition et soustraction des flottants

La mantisse de X - Y est donc:

MX-Y 0,1110 Avec E = 130

Normalisation

1,1100 Avec E = 130 – 1 = 129

X-Y 0 1000 0001 110 0000 0000 0000 0000 0000

(E = 129)

Ce qui correspond bien à + 7.

106
Addition et soustraction des flottants

 Calcul de - X – Y = - (X + Y)
On obtient le même résultat que X+Y mais avec
le bit de signe à 1:

-X-Y 1 1000 0010 110 0000 0000 0000 0000 0000

(E = 130)

Ce qui correspond à -14.

107

Vous aimerez peut-être aussi