Codage des nombres réels avec la norme IEEE-754

Slides:



Advertisements
Présentations similaires
L’électronique numérique
Advertisements

Architecture de machines Codage des informations
« 1.8. La numération binaire »
Le codage de l ’information
Architecture des Ordinateurs
Les types de codage Le complément à 2 : Nombres entiers
NOMBRES DECIMAUX : COMPARAISON ET DROITE GRADUEE
NOMBRES DECIMAUX : COMPARAISON ET DROITE GRADUEE
Présentation Unité de codage
La Notation Scientifique
La notation en complément à 2
Le binaire L’historique.
Le codage des nombres en informatique
Points importants de la semaine Les types arithmétiques. Les opérateurs.
Représentation numérique de l’information
Nature, numération, code
B.Shishedjiev - Informatique
Le codage des nombres en informatique
PROGRAMMATION SCIENTIFIQUE EN C
Formats des nombres réels
Particularités des calculs
Sections sélectionnées du Chapitre 11
Arithmétique des “computers”
L'approximation affine
Leçon 2. Les Autres Règles… Les règles quon a appris avant ont besoin des bases identiques: Les règles quon a appris avant ont besoin des bases identiques:
Chapitre 1 Le sens des nombres.
Architecture des ordinateurs
Annexe A: Numérotation binaire
Inéquations du premier degré à une inconnue
Mise en forme en Mathématiques
Entiers relatifs Définition:
Chapitre 4 : LES PUiSSANCES
NOTES DE COURS MATHÉMATIQUES 306
Informatique, Ordinateur & Programme ...
Représentation de l’information
Codage de l’information
Chapitre 2 : Représentation de l’information dans la machine
Représentation binaire de nombres entiers et opérations arithmétiques de base Sujets de ce thème
Les puissances de 10.
Suites numériques Définitions.
Fabienne BUSSAC CALCUL LITTÉRAL – INITIATION AU TABLEUR 1. DÉFINITION
CHAPITRE 3: LES NOMBRES.
Chapitre 3 :Algèbre de Boole
Le codage des nombres binaires
Cohen Julien Neville gabriel
Optimisation par les algorithmes génétiques
Les fonctions Les propriétés.
Cohen Julien Neville gabriel
Le codage des nombres en informatique
Le calcul mental _ février 2010 ARGENTEUIL SUD
L’écriture des grands nombres: les puissances de 10
Codage des nombres en informatique : le système binaire.
REPRESENTATION DE L’INFORMATION
Java Les primitives 1. Représentation d’éléments La représentation de n’importe quoi en informatique (chiffres, nombres, lettres, etc.) est composée de.
SIO SI2 : Support Réseau des Accès Utilisateurs
Le codage des nombres en informatique
Chapitre 1 Nombres relatifs.
Mathématiques Journal.
Introduction à la programmation (420-PK2-SL) cours 1
Codage de l’information
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Cours d’initiation en Informatique
Chapitre 4 La représentation des nombres.
Chapitre 4b La représentation des nombres.
Les nombres à virgule flottante
CHAPITRE 5 Les nombres entiers 1. Les entiers 2 Les entiers signés représentations pour le 0.
Principe de la numération en une base donnée
A. Lebrun. La base 2 Un nombre peut se représenter en base deux par une suite de 0 ou de 1. Chaque bit a un poids qui dépend de son rang Le format n impose.
Le codage des nombres en informatique
Département Informatique Codage de l’information Laurent JEANPIERRE IUT de CAEN – Campus 3.
Transcription de la présentation:

Codage des nombres réels avec la norme IEEE-754 Numération Codage des nombres réels avec la norme IEEE-754

La norme IEEE 754 permet de représenter des nombres à virgule. On représente les nombres au moyen des symbole suivants : Chiffres : « 0 1 2 3 4 5 6 7 8 9 » ou « 0 1 » en base 2 Virgule : « , »

Nombres à virgule en binaire En décimal : 0,1 est une autre notation pour 10-1 1,305 peut aussi s’écrire 1*100 + 3*10-1 + 0*10-2 + 5*10-3 De la même façon, en binaire : 0,1 est une autre notation pour 2-1 11,101 peut aussi s’écrire 1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 = 2 + 1 + 1/2 + 0 + 1/8 Si l’on fait le calcul, (11,101)2 vaut donc en décimal (3,625)10

Conversion décimal -> binaire Exemple : pour 9,375 9 -> 1001,…. 2-1 -> 0,5 trop grand d’où 1001,0… 2-2 -> 0.25 plus petit 1001,01… 2-3 -> 0,125 c’est bon 1001,011

Histoire de IEEE754 Première approche (11010,001101)2 Comment coder la virgule en binaire ? Première approche (11010,001101)2 Les chiffres significatifs 11010001101 ou mantisse Pour savoir ou est la virgule, on répond à la question de combien de chiffre il faut se décaler après le premier chiffre Ici 5 ce nombre représente l’exposant Le codage « naïf» serait donc 1011 11010001101

Histoire de IEEE754 Dans la pratique, c’est légèrement plus compliqué. Pourquoi ? Si on considère le nombre (0,000 000 000 011)2. C’est un très petit nombre… Avec la méthode « naïve », ce nombre ne rentre pas sur 8 bits. Les 8 premiers bits seront des 0 il n’y a pas assez de place pour faire rentrer les 1. Il faut donc ignorer les 0 pour ne garder que les chiffres significatifs d’où notre chiffre 1,1*2-11

Histoire de IEEE754 En binaire les chiffres commencent ainsi toujours par un « 1 » ce n’est donc pas la peine de le coder dans la mantisse. Définition : la mantisse est l’ensemble des chiffres significatifs situés après la virgule lorsque le nombre est en notation scientifique en binaire.

Histoire de IEEE754 Codage de l’exposant : L’exposant peut donc être positif ou négatif Complément à 1 Complément à 2 ….

Avantage Inconvénient Complément à 1 Très simple à coder Nombres positifs signés et non-signés ont la même représentation Comparaison bit a bit impossible Addition avec négatifs nécessite des étapes intermédiaires 2 notations pour le nombre 0 Complément à 2 Calcul identique entre positifs et négatifs (sans décodage) Codage par excès - Comparaison identique entre positifs et négatifs (sans décodage) Les nombres positifs ne signés et non-signés n’ont pas la même représentation

Codage par excès Pour coder : 1,1011 * 23 = (13,5)10 avec 5 bits d’exposant et 10 bits de mantisse, On écrit 00011 1011000000. Avec le codage par excès l’exposant devient 10010 Explications : Sur 5 bits, on peut compter de 0 à 31 inclus, ou bien de -15 à 16 00000 étant le plus petit nombre du codage par excès, il correspond à -15. On en déduit que pour 5 bits, le codage par excès s’obtient en additionnant 15 au nombre que l’on veut obtenir

Ajout du signe On rajoute un bit devant : (pour des raison de simplicité) Ainsi, le codage de (13,5)10 devient : 0 10010 1011000000 Ainsi, le codage de (-13,5)10 serait : 1 10010 1011000000

Les différentes précisions de l’IEEE754 La norme IEEE754 définit 3 formats de précisions. Les deux plus courants sont : Simple précision (float en C) : 8 bits pour l’exposant (excès de 127) et 23 bits de mantisse. (4 octets) Double précision (double en C) : 11 bits pour l’exposant (excès de 1023) et 52 bits de mantisse. (8 octets)

Erreur de débordement arithmétique de réel Pour des nombres trop grand (ex division par 0) Erreur d’arrondi Survient quand un réel théorique à représenter tombe strictement entre deux nombres réels voisins représentables en machine.

Conseils d’utilisation Il ne faut jamais comparer l’égalité stricte de deux réels mais toujours les comparer à epsilon près. Il faut éviter d’additionner des nombres réels d’ordres de grandeur très différents. Il faut éviter de soustraire des résultats entachés d’erreurs et ayant des valeurs voisines.