Signaler

Exposant décalé (Norme IEEE-754) [Résolu]

Posez votre question Psyco - Dernière réponse le 8 oct. 2016 à 22:47
Bonjour à tous et toutes,
J'ai besoin de votre aide concernant la norme IEE 754 et particulièrement l'exposant décalé.
Je n'arrive pas à trouver pourquoi dans certains cas, sur 64bits (et réciproquement 32bits), parfois on ajoute 1023 (réciproquement 127) parfois on soustrait 2013 à l'exposant décalé afin de déterminer l'exposant.
En effet, dans mon cours, il y a marqué "[...] on utilise un décalage de 2013 : soit n + 1023"
Or l'exemple qui suit, on voit " Exposant décalé : 1094 => Exposant = 1094-1023=77"
Puis dans d'autres exercices on voit parfois une addition et parfois une soustraction.
Alors voici ma question : Dans quel cas AJOUTER 1023 (et réciproquement 127) et dans quel cas ENLEVER 2013 (réciproquement 127)
Merci de votre aide !
Afficher la suite 
Utile
+1
moins plus
Bonjour,

Le décalage est fait pour avoir toujours un entier positif pour l'exposant, mais pour représenter des puissances aussi bien positives que négatives.

Ainsi, si on a E bits d'exposants, un entier peut aller de 0 à 2^E-1, en soustrayant 2^(E-1)-1 cela permet d'aller de -2^(E-1)-1 à +2^(E-1)

En 32 bits, E=8, on soustrait 2^(8-1)-1=127, l'exposant va de -127 à +128
En 64 bits, E=11, on soustrait 2^(11-1)-1=1023, l'exposant va de -1023 à +1024

NB. les exposants -127 et +128 (resp. -1023 et +1024) sont utilisés pour gérer des cas particuliers : infinis, NaN et nombres dénormalisés, on ne pourra donc utiliser que les exposants -126 à +127 (resp. -1022 à +1023)
Psyco- 8 oct. 2016 à 22:24
Tout d'abord, merci d'avoir pris le temps de répondre :)

J'avoue ne pas avoir compris le lien entre ce que vous avez expliqué et le pourquoi ajouter ou soustraire 1023/127

Prenons l'exemple de (10,50) base 10 qu'on voudrait mettre en binaire avec la double précision.
(10,50) = (1010,1) = (1,0101)*2^3
Le signe est positif car le bit de signe est égal à 0
Exposant n=3
Exposant décalé = 3+1023 = (1026) = (10000000010)
Pourquoi ne pas avoir fait 3-1023 ?

-----------------

Second exemple toujours sur 64 bits. Exposant décalé : (00100000011) = 256+2+1=259 Exposant := 259-1023 = -764 Pourquoi ne pas avoir fait 259+1023?

Merci de votre réponse.
Répondre
KX 13681Messages postés samedi 31 mai 2008Date d'inscription ModérateurStatut 22 novembre 2016 Dernière intervention - 8 oct. 2016 à 22:44
Tout dépend dans quel sens tu fais la conversion...

Le bon calcul c'est :
Exposant Binaire = Exposant IEEE754 - Décalage

Ce qui donne à l'envers :
Exposant IEEE754 = Exposant Binaire + Décalage


En 64 bits avec un décalage de 1023 :
Exposant Binaire = 3 → Exposant IEEE754 = 3 + 1023 = 1026
Exposant IEEE754 = 259 → Exposant Binaire = 259 - 1023 = -764
Répondre
Psyco- 8 oct. 2016 à 22:47
D'accord ! Oui effectivement, ça me parait logique ...

Merci beaucoup de l'aide !! :)

Bonne soirée et bon week-end.
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !