Sunteți pe pagina 1din 6

Reprsentation des nombres flottants

La reprsentation flottante permet la reprsentation de nombres trs petits ou trs grands en utilisant trs peu de digits au prix dune reprsentation avec une certaine prcision

Reprsentation des nombres flottants

IFT1215

Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

Notation exponentielle
Reprsentations quivalentes dans la base 10 de 1,234
123,400.0 12,340.0 1,234.0 123.4 12.34 1.234 x 10-2 x 10-1 x 100 x 101 x 102 x 103 Le point dcimal flotte (ajustement appropri de lexposant). Signe de la mantisse

lments de la notation exponentielle

-0.9876 x 10-3
Position du point dcimal Mantisse

Exposant

Signe de lexposant Base

Base de systme du nombre!

0.1234 x 104
IFT1215 Introduction aux systmes informatiques IFT1215 Introduction aux systmes informatiques

Reprsentation normalise
Un nombre reprsent en virgule flottante est normalis sil est sous la forme:
0,M * Xc M un nombre dont le premier chiffre est non nul

Exposant et 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]

Exemple:
+ 59,4151 * 10-5 => Normalis: +0,594151 * 10-3

La constante k est appele constante dexcentrement


IFT1215 Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

Reprsentation en virgule flottante


Avec 2 digits rservs au codage de lexposant avec un excentrement gal 5010 et 5 digits pour la mantisse on peut reprsenter
de .00001 x 10-50 .99999 x 1049

Overflows / Underflows
De .00001 x 10-50 .99999 x 1049 1 x 10-55 .99999 x 1049

IFT1215

Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

Format typique

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)

IFT1215

Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

Format simple prcision


32 bits
S C M en base 2, avec un bit cach 1

Format Double Prcision


64 bits

Mantisse (23 bits) Exposant (8 bits) Signe de la mantisse (1 bit)


IFT1215 Introduction aux systmes informatiques IFT1215

Mantisse (52 bits) Exposant (11 bits) Signe de la mantisse (1 bit)


Introduction aux systmes informatiques

Normalisation dans le format IEEE 754


La mantisse est normalis sous la forme
Pseudo mantisse Le 1 prcdant la virgule nest pas cod en machine et est appel bit cach 1,M*2c

IEEE 754, exposant


Constante k dexcentrement applique lexposant
Simple prcision: +12710 Double prcision: +102310

Lexposant c cod en interne


c + 12710 c + 102310

Exemple:
10100000000000000000000 Mantisse: Reprsentation: 1.1012 = 1.62510
IFT1215 Introduction aux systmes informatiques

Ex., k = 12710, 100001112 Exposant: Reprsentation: 13510 12710 = 810 (valeur)


IFT1215 Introduction aux systmes informatiques

Exposant et son signe


- Exemple -

Exposant et son signe


- Exemple Reprsentez lexposant -810 avec un excentrement 127:

Reprsentez lexposant 1410 avec un excentrement 127: 12710 1410 Reprsentation = = = + 011111112 + 000011102 100011012

12710 - 810 Reprsentation

= = =

+ 011111112 - 000010002 011101112

IFT1215

Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

Exemple
Simple prcision
0 10000010 11000000000000000000000 1.112 = 1.7510 130 127 = 3 0 = mantisse positive

Exercice Conversion en virgule flottante IEEE 754


Quelle est la valeur dcimale des reprsentations internes suivantes?
1 10000010 11110110000000000000000

Rponse:

+1.75 23 = 14.0
IFT1215 Introduction aux systmes informatiques IFT1215 Introduction aux systmes informatiques

Exercice Conversion en virgule flottante IEEE 754


Rponse

Solution
1 10000010 11110110000000000000000

Quelle est la valeur dcimale des reprsentations internes suivantes?


1 10000010 11110110000000000000000

En dcimal
130 - 127 = 3 1.11110110000000000000000000

1 + .5 + .25 + .125 + .0625 + 0 + .015625 + .0078125

Rponse: -15.6875

23 * 1.9609375
( negatif )

= 15.6875

- 15.6875
Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

IFT1215

Solution : Mthode Alternative


1 10000010 11110110000000000000000

Exercice Conversion en virgule flottante IEEE 754


Quelle est la reprsentation interne du nombre 3.1410? Remarque: utiliser seulement les 10 chiffres significatifs pour la mantisse Rponse:

En dcimal
130 - 127 = 3 Dcalez Point
( negatif )

1.11110110000000000000000000 1111.10110000000000000000000

- 15.6875

IFT1215

Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

Exercice Conversion en virgule flottante IEEE 754


Rponse

Solution : 3.14 en IEEE Simple Prcision


3.14 En Binaire (approx): Normalisez Enlevez le bit cach Exposant = 127 + 1 Valeur est positive: Bit de signe = 0 (21)

Quelle est la reprsentation interne du nombre 3.1410? Remarque: utiliser seulement les 10 chiffres significatifs pour la mantisse Rponse:
0 10000000 10010001111000000000000

11.001000111101 1001000111101
10000000

0 10000000 10010001111010000000000
IFT1215 Introduction aux systmes informatiques IFT1215 Introduction aux systmes informatiques

IEEE 754 Simple Prcision Format (Rsum)


sig ne exposant s M1 0 1 8 9 Mantisse

IEEE-754
IEEE-754 dfinit deux reprsentations diffrentes pour chaque taille de mot
31

M2 M23

Reprsentation normalise
Le plus petit nombre reprsentable (simple): 2-126 Le plus grand nombre reprsentable (simple): 2128


IFT1215

Signe 1 bit (0 +; 1 -) Exposant 8 bits (excentrement-127) Mantisse 23 bits Format binaire Normalisation : 1.MMMM Bit cach
Introduction aux systmes informatiques IFT1215

Reprsentation non normalise


4 types

Introduction aux systmes informatiques

Reprsentation du zro, des infinis, reprsentations dnormalises


Le norme IEEE admet des codages spciaux pour la reprsentation
1. 2. 3. 4. 0 NaN (Not a Number) situation derreur Reprsentations dnormalises

Reprsentation du zro, des infinis, reprsentations dnormalises


Exposant 0 0 -126 - +127 128 128 Mantisse 0 Non 0 Tout 0 Non 0 Valeur 0 2-126 * 0.M 2E+127 * 1.M Conditions spciales

IFT1215

Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

Format dcimal empaquet


Dans certain application, il est important de maintenir une prcision parfaite pour la reprsentation de nombres rels (ex.: dollars et cents) Quelques langages de haut niveau (ex.: Cobol) fournissent un format qui permet de spcifier un nombre de chiffres dcimaux dsir Chaque digit du nombre en base 10 est cod en BCD Utilis par IBM System 370/390 et Compaq Alpha MSB
4 bits 4 bits

Arithmtique en flottant
Oprandes 6.144 102 +9.975 104 Alignement 0.06144 104 +9.975 104 10.03644 104 Normaliser & arrondir 1.003644 105 + .0005 105 1.004 105

...
Jusqu' 31 digits

1100 ou 1101 ou 1111

Oprandes 1.076 10-7 -9.987 10-8

Exemple: -324.6 = 0000 0011 0010 0100 0110 1101


IFT1215 Introduction aux systmes informatiques IFT1215

Alignement 1.076 10-7 -0.9987 10-7 0.0773 10-7

Normaliser & arrondir 7.7300 10-9 + .0005 10-9 7.730 10-9

Introduction aux systmes informatiques

Arithmtique en flottant: Addition


Aligner le plus faible exposant sur le plus fort Additionner les deux mantisses. Si overflow, ajuster lexposant Ex. 0 51 99718 (e = 1) and 0 49 67000 (e = -1)
Aligner nombres: Additionner mantisses: 0 51 99718 0 51 00670 99718 + 00670 1 00388 Overflow

Arithmtique en flottant: Multiplication


(a * 10e) * (b * 10f) = a * b * 10e+f Rgle: multiplier mantisses; additionner exposants Mais: Codage dexposant, (n + e) + (n + f) = 2 * n + e + f On doit soustraire constante dexcentrement n du rsultat Ex. 0 51 99718 (e = 1) et 0 49 67000 (e = -1)
Mantisses: Exposants: Normaliser: Rsultat final:
IFT1215

.99718 * .67000 = 0.6681106 51 + 49 = 100 et 100 50 = 50 .6681106 .66811 .66811 * 100 (comme 50 signifie e = 0)
Introduction aux systmes informatiques

arrondir le nombre et ajuster lexposant: 0 52 10039


IFT1215 Introduction aux systmes informatiques

Programmation
Calcul avec des entiers
Plus facile pour lordinateur Trs haute prcision ou mme sans perte de prcision Plus rapide (mois daccs mmoire, circuits logiques plus simples, etc.) Langage C: short (16 bits), long (32 bits)

Programmation
Calcul avec des flottants
Variable ou constante avec une partie fractionnaire Perte de prcision Moins rapide Langage C
simple prcision float Double prcision double

IFT1215

Introduction aux systmes informatiques

IFT1215

Introduction aux systmes informatiques

S-ar putea să vă placă și