Reprsentation des nombres flottants IFT2880 Organisation des ordinateurs et systmes Notation exponentielle Le point dcimal flotte (ajustement appropri de lexposant). Reprsentations quivalentes dans la base 10 de 1,234 1 2 3 , 4 0 0 . 0 x 1 0 - 2 1 2 , 3 4 0 . 0 x 1 0 - 1 1 , 2 3 4 . 0 x 1 0 0 1 2 3 . 4 x 1 0 1 1 2 . 3 4 x 1 0 2 1 . 2 3 4 x 1 0 3 0 . 1 2 3 4 x 1 0 4 IFT2880 Organisation des ordinateurs et systmes lments de la notation exponentielle - 0 . 9 8 7 6 x 1 0 - 3 Signe de la mantisse Position du point dcimal Mantisse Exposant Signe de lexposant Base Base de systme du nombre! IFT2880 Organisation des ordinateurs et systmes Reprsentation normalise Un nombre reprsent en virgule flottante est normalis sil est sous la forme: 0,M * X c M un nombre dont le premier chiffre est non nul Exemple: + 59,4151 * 10 -5 => Normalis: +0,594151 * 10 -3 IFT2880 Organisation des ordinateurs et systmes Reprsentation de lexposant et de son signe Lexposant est translate de manire toujours coder en interne une valeur positive Avec 2 digits rservs au codage de lexposant Les valeurs positives: [+0, +99] En appliquant une translation k=50: Les exposants reprsentables => [-50,49] La constante k est appele constante dexcentrement IFT2880 Organisation des ordinateurs et systmes Reprsentation en virgule flottante Avec 2 digits rservs au codage de lexposant avec un excentrement gal 50 10 et 5 digits pour la mantisse on peut reprsenter de .00001 x 10 -50 .99999 x 10 49 IFT2880 Organisation des ordinateurs et systmes Overflows / Underflows De .00001 x 10 -50 .99999 x 10 49 1 x 10 -55 .99999 x 10 49 IFT2880 Organisation des ordinateurs et systmes Format typique IFT2880 Organisation des ordinateurs et systmes La norme IEEE 754 Un format standardis Format simple prcision: 32 bits Bit du signe (1 bit) Exposant (8 bits) Mantisse (23 bits) Format double prcision: 64 bits Bit du signe (1 bit) Exposant (11 bits) Mantisse (52 bits) IFT2880 Organisation des ordinateurs et systmes Format simple prcision 32 bits Mantisse (23 bits) Exposant (8 bits) Signe de la mantisse (1 bit) C S M en base 2, avec un bit cach 1 IFT2880 Organisation des ordinateurs et systmes Format Double Prcision 64 bits Mantisse (52 bits) Exposant (11 bits) Signe de la mantisse (1 bit) IFT2880 Organisation des ordinateurs et systmes Normalisation dans le format IEEE 754 La mantisse est normalis sous la forme 1,M*2 c Pseudo mantisse Le 1 prcdant la virgule nest pas cod en machine et est appel bit cach Exemple: Mantisse: Reprsentation: 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 . 1 0 1 2 = 1 . 6 2 5 1 0 IFT2880 Organisation des ordinateurs et systmes IEEE 754, Reprsentation de lexposent Constante k dexcentrement applique lexposant Simple prcision: +127 10 Double prcision: +1023 10 Lexposant c cod en interne c + 127 10 c + 1023 10 Ex., k = 127 10 , Exposant: Reprsentation: 1 0 0 0 0 1 1 1 2 1 3 5 1 0 1 2 7 1 0 = 8 1 0 ( v a l e u r ) IFT2880 Organisation des ordinateurs et systmes Reprsentation de lexposant et de son signe - Exemple - Reprsentez lexposant 14 10 avec un excentrement 127: 127 10 = + 01111111 2 14 10 = + 00001110 2 Reprsentation = 10001101 2 IFT2880 Organisation des ordinateurs et systmes Reprsentez lexposant -8 10 avec un excentrement 127: 127 10 = + 01111111 2 - 8 10 = - 00001000 2 Reprsentation = 01110111 2 Reprsentation de lexposant et de son signe - Exemple - IFT2880 Organisation des ordinateurs et systmes Exemple Simple prcision 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.11 2 = 1.75 10 130 127 = 3 0 = mantisse positive +1.75 ! 2 3 = 14.0 IFT2880 Organisation des ordinateurs et systmes Exercice Conversion en virgule flottante IEEE 754 Quelle est la valeur dcimale des reprsentations internes suivantes? Rponse: 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IFT2880 Organisation des ordinateurs et systmes Exercice Conversion en virgule flottante IEEE 754 Quelle est la valeur dcimale des reprsentations internes suivantes? Rponse: -15.6875 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rponse IFT2880 Organisation des ordinateurs et systmes 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Solution En dcimal 130 - 127 = 3 1.11110110000000000000000000 1 + .5 + .25 + .125 + .0625 + 0 + .015625 + .0078125 1.9609375 2 3 * = 15.6875 - 15.6875 ( negatif ) IFT2880 Organisation des ordinateurs et systmes 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Solution : Mthode Alternative En dcimal 130 - 127 = 3 1.11110110000000000000000000 1111.10110000000000000000000 - 15.6875 ( negatif ) Dcalez Point IFT2880 Organisation des ordinateurs et systmes Exercice Conversion en virgule flottante IEEE 754 Quelle est la reprsentation interne du nombre 3.14 10 ? Remarque: utiliser seulement les 10 chiffres significatifs pour la mantisse Rponse: IFT2880 Organisation des ordinateurs et systmes Exercice Conversion en virgule flottante IEEE 754 Quelle est la reprsentation interne du nombre 3.14 10 ? Remarque: utiliser seulement les 10 chiffres significatifs pour la mantisse Rponse: Rponse 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 IFT2880 Organisation des ordinateurs et systmes Solution : 3.14 en IEEE Simple Prcision 3.14 En Binaire (approx): 11.001000111101 Normalisez (2 1 ) Enlevez le bit cach 1001000111101 Exposant = 127 + 1 10000000 Valeur est positive: Bit de signe = 0 0 10000000 10010001111010000000000 IFT2880 Organisation des ordinateurs et systmes IEEE 754 Simple Prcision Format (Rsum) Signe 1 bit (0 +; 1 -) Exposant 8 bits (excentrement-127) Mantisse 23 bits Format binaire Normalisation : 1.MMMM Bit cach s ! M 1 M 2 M 23
si gne exposent Mantisse 1 8 9 31 0 IFT2880 Organisation des ordinateurs et systmes Reprsentation du zro, des infinis, reprsentations dnormalises Le norme IEEE admet des codages spciaux pour la reprsentation 0 +! -! Reprsentations dnormalises IFT2880 Organisation des ordinateurs et systmes Reprsentation du zro, des infinis, reprsentations dnormalises Conditions spciales Non 0 128 ! 0 128 2 E+127 * 1.M Tout -126 - +127 2 -126 * 0.M Non 0 0 0 0 0 Valeur Mantisse Exposant IFT2880 Organisation des ordinateurs et systmes Addition et soustraction de deux nombres dcimales en virgule flottante Oprandes Alignement Normaliser et arrondir 6.144 10 2 0.06144 10 4 1.003644 10 5 +9.975 10 4 +9.975 10 4 + .0005 10 5 10.03644 10 4 1.004 10 5
IFT2880 Organisation des ordinateurs et systmes Calcul en virgule flottante: Addition Nombres doivent tre aligns : avoir les mmes exposants (le plus lev pour protger la prcision) Additionner mantisses. Si overflow, ajuster lexposant Ex. 0 51 99718 (e = 1) et 0 49 67000 (e = -1) Aligner les nombres: 0 51 99718 0 51 00670 Additionner: 99718 + 00670 1 00388 ! Overflow Arrondir le nombre et ajuster lexposant: 0 52 10039 IFT2880 Organisation des ordinateurs et systmes Calcul en virgule flottante: Multiplication (a * 10 e ) * (b * 10 f ) = a * b * 10 e+f Rgle: multiplier les mantisses; additionner les exposants But: Codage en excdent, (n + e) + (n + f) = 2 * n + e + f " Besoin soustraire constante dexcentrement n a partir du rsultat Ex. 0 51 99718 (e = 1) and 0 49 67000 (e = -1) Mantisses: .99718 * .67000 = 0.6681106 Exposants: 51 + 49 = 100 and 100 50 = 50 Normaliser: .6681106 # .66811 Rsultat: .66811 * 10 0 (50 signifie e = 0)