Está en la página 1de 3

David Defour

Master IA 2ème année

TD N° 3
Norme IEEE 754

1.Les bases
Savez-vous que l'ordinateur que vous achetez chez votre intégrateur travail en base 2 ! En revanche,
savez-vous que la calculatrice de poche achetée chez la même personne travaille en base 10.
Question :
Expliquez pourquoi.

1.1Conversion Base 2 Base 10


Soit les deux algorithmes de conversion d'un nombre X de la base 10 vers la base 2 suivant :
Algorithme 1 Algorithme 2
I=0; Entrée : Ci = 2i précalculés en base 10, Cn <= X Cn+1
tant que X!=0 faire n = 1;
yi=X mod2; X = X – Cn;
X = X div 2; pour chaque i allant de n-1 à 0 faire
i = i + 1; si X >= Ci alors
fin yi = 1;
X = X – Ci;
sinon
yi = 0;
fin
fin

Question :
Pourquoi le premier algorithme est plus adapté que le deuxième si l'on traite des flottants ?

1.2Algorithme de conversion
Question :
Pourquoi en simple précision, un nombre binaire converti en base 10 sur 8 chiffres ne retombe pas
toujours sur le nombre binaire de départ par le processus inverse ?
(indice : penser à 0.1)

1.3Représentation
L'intérêt de la norme IEEE-754 est de normaliser la représentation des nombres flottants entre les
différentes machines. La représentation proposée doit également tenir compte des cas
« exceptionnels » ainsi que de la distribution des nombres flottants sur R.

Question :
1. Quel est l'intérêt de disposer d'une représentation standardisée des flottants ?
2. Quelles sont les valeurs que vous représenteriez dans une norme flottante ?
3. Discuter de la représentation des nombres flottants autour de 0.

1.4Arrondis
Question :
Quels sont les avantages d'avoir différents mode d'arrondi ?

1.5Quel joli programme !!!

Input : A, B réels virgule flottante


A := 1;
B := 1;
while ((A+1)-A-1) = 0 do
A := 2*A;
end
while ((A+B-A-B) != 0 do
B := B+1;
end

Question :
Après avoir observé comment les nombres flottants sont représentés, quel est à votre avis le résultat
rendu par cet algorithme ?

2.Système de numération
2.1Complément à la base
IL est possible de coder Bn nombres entiers sur n « positions » dans la base B (On suppose B pair).
Plusieurs solutions s'offrent à nous pour répartir ces nombres :
1. La plus naturelle est de considérer les nombres de l'intervalle [0, Bn-1]
2. Si l'on veut les nombres négatifs alors on s'intéresse aux nombres de l'intervalle [-Bn/2, Bn/2-1].
La solution numéro 2 est appelée complément à B dont le principe est le suivant :
– Les nombres appartenant à [0, Bn/2-1] restent inchangés dans leurs représentations complément
à la base B
– Les nombres appartenant à [-Bn/2, 0] sont translatés de Bn dans leurs représentations.

Exemple :
Soit la base B=10 et le nombre de chiffre n=4. On s'intéresse donc aux 104-1 chiffres de l'intervalle
[-5000, 4999] en complément à 10 :
Ainsi le nombre X de l'intervalle [0, 4999] a pour représentation X en complément à 10.
ex : 2000=(2000)10.
Pour obtenir la représentation du nombre Y de l'intervalle [-5000, -1], il faut ajouter 10000 à sa
valeur.
Ex : -2000=(8000)10.

2.2Avizienis
Il existe d'autre système de numération que l'on dit redondant. Le plus célèbre, la notation
d'Avizienis (1961) qui dans la base B ne considère plus seulement les chiffres sur l'ensemble {0,
1, ..., B-1} mais sur l'ensemble {-a, ... a} avec a < B et 2a > B. (Ce système ne fonctionne pas avec
la base 2).
Par exemple, avec B = 10 et a = 6 le nombre 4610 en base 10 s'écrit aussi 5(-4)10 = 5.103 + (-4)*102
+ 1.101 + 0.100
Exercice :
Soit B=10 et a=7, donner les différentes représentations du nombre 458.

2.3L'addition
Lorsque vous effectuez une addition à la main, les retenues engendrées par le calcul vous obligent à
traiter chaque nombre séquentiellement de gauche à droite. Votre cerveau n'étant pas multi-tache, ce
n'est pas très grave, mais pour un ordinateur il est inconcevable d'avoir à attendre que les retenues
aient finit de se propager jusqu'au dernier bit pour disposer du résultat.
Une solution consiste à utiliser le système de numération d'Avizienis dont l'algorithme d'addition est
le suivant :
ti+1 = -1 si (xi+yi)<=-a ; +1 si (xi+yi)>=-a ; 0 sinon
wi = xi + yi – B.ti+1
Si = wi + ti

Exercice :
Pour bien remarquer que cette addition peut être effectuée en parallèle, passons à la pratique : Soit
B=10 et a=6, additionner de gauche à droite les deux nombres 1(-5)3(-2)6 et 014(-5)(-2).

3.Un nouveau système de numération ?


Dans les systèmes de représentation des nombres usuels, on utilise une base b, un exposant e, une
mantisse m et un signe pour représenter le nombre :
(-1)s.m.be
Considérons maintenant qu'avec les mêmes champs b, m et s on représente un nombre de la forme
(-1)s logb (m)
1. Réfléchissez à une façon d'effectuer des multiplications et divisions dans ce système de
représentation des nombres.
2. Quels sont les inconvénients de ce système ? (pensez aux autres opérateurs, aux arrondis, ...)
Remarques : Ce système de représentation s'appelle « système logarithmique »

4.Opérateurs flottants
Après avoir réalisé comment les nombres flottants se comportaient, essayez de construire le
diagramme d'un multiplieur flottant, puis d'un additionneur. Pour cela pensez bien à la gestion des
exposants et des cas spéciaux.

También podría gustarte