La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Représentation de l'information en binaire:

Présentations similaires


Présentation au sujet: "Représentation de l'information en binaire:"— Transcription de la présentation:

1 Représentation de l'information en binaire:
Les nombres réels Emmanuelle Peuch

2 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 Lien hypertexte Texte souligné : cliquer sur le lien hypertexte Cliquer pour revenir à la page appelante (retour d'un lien hypertexte)

3 Table des matières Représentation en virgule fixe
Définition Conversion: approfondissement Représentation en virgule flottante Système décimal: rappel Système binaire Etendue des nombres en virgule flottante

4 Format double précision Exercices
Représentation en virgule fixe Représentation en virgule flottante Addition et soustraction des nombres flottants (IEEE754)

5 Représentation en virgule fixe
Définition

6 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:

7 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.

8 Définition Conversion binaire – décimal d'une partie fractionnaire
Convertissons (0,101)b Le procédé est le même qu'avec les nombres entiers, mais avec des puissances de 2 négatives!  Quelques puissances de 2 négatives

9 Définition La partie fractionnaire (101)b est donc, en base 10: = 0,5 + 0,125 = 0,625

10 Définition 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 = = (101)b

11 Définition  On peut aussi utiliser la méthode de la multiplication répétée par 2 (0,625)d = = (101)b

12 Représentation en virgule fixe
Conversion: approfondissement

13 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 !

14 Conversion: approfondissement
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

15 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

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

17 Conversion: approfondissement
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

18 Conversion: approfondissement
 Le nombre à convertir étant négatif, il faut déterminer le complément à 2 de ce dernier:

19 Conversion: approfondissement
 Conclusion

20 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.

21 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.

22 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

23 Conversion: approfondissement
 Partie entière On dispose de trois bits: On est en convention complément à 2 L'étendue de la partie entière va donc de - 4 à + 3.

24 Conversion: approfondissement
 Partie fractionnaire On dispose de cinq bits: Sa valeur maximale est donc: … = 0,96875  Conclusion En format 8 bits, avec 5 bits pour la partie fractionnaire, l'échelle des valeurs est: - 4 à + 3,96875.

25 Conversion: approfondissement
 Inconvénient du format à virgule fixe Soit à convertir (+1,5)d: 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).

26 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.

27 Représentation en virgule flottante
Système décimal: rappel

28 Système décimal: rappel
Notation scientifique Un nombre réel X est représenté par une mantisse m et un exposant e:

29 Système décimal: rappel
Ecriture en notation scientifique  X = 0, = 0, 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.

30 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, Ou encore X = 6,234 E -3 Comparez les notations fixe et scientifique de votre calculatrice!

31 Système décimal: rappel
Autre exemple  X = 91234,56 = 91234,56.100  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, = 9, E +4

32 Représentation en virgule flottante
Système binaire

33 Système binaire Notation scientifique
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:

34 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.

35 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.

36 Système binaire Format 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).

37 Système binaire  Bit de signe S  Exposant E sur 8 bits
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).

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

39 Système binaire L'exposant Eréel = +35 sera représenté par:

40 Système binaire L'exposant biaisé E est donc un nombre non signé sur 8 bits avec E = Eréel 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).

41 Nous ne parlerons pour l'instant que du format normalisé.
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

42 Système binaire Valeurs de l'exposant en format normalisé E réel
E biaisé (Eréel + 127) 127 254 = ( )b 126 253 = ( )b . 1 128 = ( )b 127 = ( )b -1 126 = ( )b -126 1 = ( )b

43 Système binaire  Mantisse M sur 23 bits
La mantisse est normalisée sous la forme: 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.

44 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.

45 Système binaire La mantisse représente toujours la valeur absolue du nombre (on n'utilise pas la notation complément à 2).

46 Système binaire Conversion de (- 1039)d
 On convertit (+ 1039)d en binaire (1039)d = ( )b = ( )b . 20  On normalise le nombre pour le mettre sous la forme:

47 Système binaire ( )b . 20  On décale la virgule à gauche 10 fois.  On incrémente l'exposant de 10.

48 Système binaire  Exposant E sur 8 bits  Bit de signe S du nombre
Translation de de Eréel = 10 E = = (137)d = ( )b  Bit de signe S du nombre Nombre négatif (-1039) donc S = 1

49 Système binaire  Conclusion

50 Système binaire Convertissons le nombre réel binaire suivant en décimal  Bit de signe: S = 0 donc nombre positif

51 Système binaire Exposant biaisé E: E = (0001 0011)b = (11)d
Donc Eréel = E – 127 = 11 – 127 = - 116

52 Système binaire Mantisse: N'oublions pas le bit caché!
M = (1, )b M = = 1,6875

53 Système binaire Conclusion Le nombre réel est donc, en base dix:

54 Etendue des nombres en virgule flottante

55 Etendue des nombres Exposant Eréel Mantisse
Quels nombres peut-on exprimer en format NORMALISE simple précision (32 bits)? Exposant Eréel Il varie de -126 à L'exposant E biaisé varie donc de 1 à 254. Mantisse Mmin = (1, )b Mmax = (1, )b

56 Etendue des nombres Le plus petit réel représentable dans ce format est : Ymin = (1, )b = 2-126  1, Il est à noter que nous avons la même valeur en négatif (bit de signe S = 1)!

57 Etendue des nombres Le plus grand réel représentable dans ce format est : Ymax = (1, )b = ( …+2-23) Or ( …+2-23) = S24 est la somme des 24 premiers termes d'une suite géométrique de raison 2-1.

58 Etendue des nombres Etendue des nombres réels normalisés
Ymax = ( …+2-23) = (2 – 2-23)  3, Etendue des nombres réels normalisés

59 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 = (E biaisé = 0) et une mantisse nulle pour coder 0. On obtient donc deux représentation de zéro:

60 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.

61 Etendue des nombres Résumé

62 valeurs dénormalisées
Etendue des nombres Autres codages Bit S E réel E biaisé Mantisse Codage de: 128 255  0 NaN 1 -127 valeurs dénormalisées NaN = Not A Number: codes qui permettent de signaliser des erreurs comme par exemple une division par 0.

63 Format double précision

64 Format double précision
En double précision, le format est de 64 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.

65 Exercices

66 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

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

68 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

69 Représentation en virgule flottante
Exercice 2 Convertir les nombres réels binaires suivants en décimal (norme IEEE754 simple précision): solution

70 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

71 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

72 FIN Emmanuelle Peuch

73 Quelques puissances de 2 négatives

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

75 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: … = 0,96875  L'étendue des nombres représentables dans ce format est donc: - 4 à + 3,96875

76 Représentation en virgule fixe
 Conversion de 1,625  Partie entière (3 bits) (1)d = (001)b  Partie fractionnaire (5 bits)  Solution (1,625)d = (001,10100)b

77 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

78 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: Solution: (-3,96875)d = (100,00001)b

79 Représentation en virgule fixe
 Conversion de 2,134  Partie entière (3 bits) (2)d = (010)b  Partie fractionnaire (5 bits)  Solution (2,134)d = (010,00100)b

80 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 = = 0,25 + 0,0625 = 0,3125 Solution: (010,01010)b = (2,3125)d

81 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. Partie entière de la valeur absolue: (010)b =(2)d

82 Représentation en virgule fixe
Partie fractionnaire de la valeur absolue: (00101)b = = 0, ,03125 = 0,15625 Solution (101,11011)b = (- 2,15625)b

83 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 = ( )b.20= (1, )b.27 Rappel: La partie fractionnaire de la mantisse est sur 23 bits. Exposant biaisé: E = Eréel = = 134 = ( )b

84 Représentation en virgule flottante
Solution:

85 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 = ( )b (0,075)d = 0,5 + 0,25 = = (0,11)b Normalisation: (32,75)d = ( ,11)b.20 = (1, )b.25

86 Représentation en virgule flottante
Exposant biaisé: E = Eréel = = 132 = ( )b Solution:

87 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

88 Représentation en virgule flottante
Exposant biaisé: E = Eréel = = 123 = ( )b Solution:

89 Représentation en virgule flottante
 Bit de signe: S = 1, nombre négatif Exposant réel Eréel: E = ( )b = (122)d Eréel = E = 122 – 127 = -5 Mantisse: Ne pas oublier le bit caché (chiffre 1 à gauche de la virgule)

90 Représentation en virgule flottante
(1,1)b = = 1,5 Solution: Le nombre réel binaire est donc en base 10: - 1, = - 1,5 + 0,03125 = - 0,046875

91 Représentation en virgule flottante
 Bit de signe: S = 0, nombre positif Exposant réel Eréel: E = ( )b = (170)d Eréel = E = 170 – 127 = 43 Mantisse: (1,110)b = = 1,75

92 Représentation en virgule flottante
Solution: Le nombre réel binaire est donc en base 10: 1,  1,

93 Représentation en virgule flottante
 Bit de signe: S = 1, nombre négatif Exposant réel Eréel: E = ( )b = (131)d Eréel = E = 131 – 127 = 4 Mantisse: (1,111)b = = 1,875

94 Représentation en virgule flottante
Solution: Le nombre réel binaire est donc en base 10: 1, = 30

95 Représentation en virgule flottante
 Bit de signe: S = 0, nombre positif Exposant réel Eréel: E = ( )b = (117)d Eréel = E = 117 – 127 = -10 Mantisse: (1,000)b = 1

96 Représentation en virgule flottante
Solution: Le nombre réel binaire est donc en base 10: = 9,

97 Addition et soustraction des flottants
 Conversion de X = 10,5 X = (1010,1)b . 20= (1,0101)b . 23 Exposant E: E = Eréel = = 130 = ( )b

98 Addition et soustraction des flottants
 Conversion de Y = 3,5 Y = (11,1)b . 20= (1,11)b . 21 Exposant E: E = Eréel = = 128 = ( )b

99 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

100 Addition et soustraction des flottants
 Calcul de X + Y Les exposants étant les mêmes on fait la somme des mantisses:

101 Addition et soustraction des flottants
Vérifions notre calcul en convertissant X+Y en base 10: Eréel = 130 – 127 = 3 X + Y = (1,11)b . 23 = ( ).23 = 14

102 Addition et soustraction des flottants
 Calcul de – X + Y Il faut prendre le complément à 2 de la mantisse de X:

103 Addition et soustraction des flottants
La mantisse de - X + Y est donc:

104 Addition et soustraction des flottants
Vérifions notre calcul en convertissant -X+Y en base 10: Eréel = 129 – 127 = 2 -X + Y = - (1,11)b . 22 =- ( ).22 = -7

105 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:

106 Addition et soustraction des flottants
La mantisse de X - Y est donc: Ce qui correspond bien à + 7.

107 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: Ce qui correspond à -14.


Télécharger ppt "Représentation de l'information en binaire:"

Présentations similaires


Annonces Google