12.07.2015 Views

Systèmes de numération - UQAC

Systèmes de numération - UQAC

Systèmes de numération - UQAC

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Richard Tremblay et Djamal Rebaïnesystèmes <strong>de</strong> numérationExemple : Supposons que l'on veuille faire l'addition <strong>de</strong>s nombres 0.100110 * 2 4 et 0.110101 *2 1 . Il faut en premier lieu rendre les exposants égaux. On réalise cela en décalant <strong>de</strong> 3 positionsbinaires le point décimal du <strong>de</strong>uxième nombre pour obtenir ainsi 0.000110101 * 2 4 . Décaler d'uneposition vers la droite le point décimal revient à diviser la mantisse par 2. Pour conserver lavaleur du nombre, à chaque décalage d'une position, on ajoute 1 à l'exposant. Aussi, 3 décalagesvers la droite sont compensés par l'addition <strong>de</strong> 3 à l'exposant. Cependant, la mantisse étantétendue sur 6 bits vers la droite, les bits dépassant la 6ième position seront ignorés. Le <strong>de</strong>uxièmenombre que la machine considèrera pour l'addition <strong>de</strong>viendra 0.000110 * 2 4 si on tronque ou0.000111 * 2 4 si on arrondit, cela dépendant du fabricant <strong>de</strong> la machine. Par la suite, l'addition<strong>de</strong>s <strong>de</strong>ux mantisses se fera donnant comme résultat soit avec la mantisse tronquée:0.100110 (*2 4 )+ 0.000110 (*2 4 )0.101100 (*2 4 )ouavec la mantisse arrondie:0.100110 (*2 4 )+ 0.000111 (*2 4 )0.101101 (*2 4 )On réalise ici que le résultat d'une addition peut être très imprécis en virgule flottante. En termesclairs, l'addition <strong>de</strong>mandée en décimale était35/2 + 117/64 qui <strong>de</strong>vrait donner comme résultat 1237/64 ou 19+21/64 19.32815.Les résultats obtenus sont:avec la mantisse tronquée: 35/2 + 3/2 = 19avec la mantisse arrondie: 35/2 + 7/4 = 77/4 = 19.25.L'erreur commise est dans le premier cas <strong>de</strong> 0.32815 et dans le second <strong>de</strong> 0.07815 . Cette erreurest d'autant plus importante que la différence entre les exposants est gran<strong>de</strong>. Notons que l'erreurcommise est moins gran<strong>de</strong> pour l'arrondi que pour la troncature.En analyse numérique, on démontre que pour la somme <strong>de</strong> n nombres, la précision est plusgran<strong>de</strong> si on ordonne d'abord les nombres en ordre croissant pour les additionner l'un après l'autreen partant du plus petit au plus grand. Cet algorithme réduit au minimum la différence entre lesexposants à chaque addition successive <strong>de</strong> <strong>de</strong>ux nombres . Donnons un autre exemple encore plusfrappant démontrant que l'addition en virgule flottante n'est pas très précise dans les cas où lesexposants sont très différents.Effectuons l'addition <strong>de</strong>s <strong>de</strong>ux nombres suivants exprimés sur cinq bits:0.10110 * 2 3 + 0.10011 * 2 -2 . On ramène les exposants égaux, c'est-à-dire le plus petit vers le plusgrand, ce qui donne :66

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!