Précédent   Forum FS Generation > Futura-Sciences : les forums de la science > MATHEMATIQUES > Mathématiques du supérieur
Mot de passe oublié ? Inscrivez-vous !


Réponse
 
Outils de la discussion Modes d'affichage
Vieux 21/09/2007, 14h42   #1
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
[Numération] Représentation IEEE

Bonjour à tous !
J'ai un problème avec la représentation IEEE (la représentation IEEE est d'après ce que j'ai pu lire la norme internationale) des nombres sur ordinateur. Je vous le présente sur un exemple :

0,3 = 3.10-1

3 est la mantisse et -1 est l'exposant

Dans (32 octets, le premier bit (tout à gauche) sert à coder le signe), on code en binaire, l'exposant «*mesure*» 8 bits et la mantisse «*mesure*» 23 bits.

Je voudrais coder 0,3 dans

Bon, c'est pas compliqué : la mantisse, c'est 3 (en base 10) donc c'est 0...011 (on met plein de zéros pour utiliser les 23 bits) en binaire.

L'exposant, c'est -1, et c'est là que ça se complique...
que me dit-on ?
Les bits extrêmaux (de l'exposant) servent à coder des cas spéciaux (donc, j'imagine qu'il faut mettre un 0, de toute façon si on met un 1, ça donnera pas non plus ce qu'il faudrait...)

Dans les 8 bits utiles pour l'exposant, il en reste 6. Codage de l'exposant : 01111110

en effet, on élimine les deux extrêmes et :
- 27 – (26 + ... = 20 ) = - 1

D'où le codage : 0 01111110 0...011 (signe – exposant – mantisse)

Maintenant, le problème... J'ai une règle qui permet de passer de l'expression en flottant au «*vrai*» nombre en base 10, et bien, ça ne marche pas (et de beaucoup !)

Bref, je me plante à quelque part, et j'aimerais bien savoir où !

Merci de votre aide

Romain
Romain-des-Bois est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 21/09/2007, 14h51   #2
 
Date d'inscription: août 2005
Localisation: Paris
Âge: 49
Messages: 1 447
Re : [Numération] Représentation IEEE

Regarde ici : http://www.commentcamarche.net/base/representation.php3
Il faut retirer 127 à l'exposant avant de le coder.
ericcc est déconnecté   Réponse avec citation
Vieux 21/09/2007, 15h00   #3
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
Re : [Numération] Représentation IEEE

Salut !

Dans l'explication, il n'est pas dit qu'il faut enlever 127, mais quand je dé-code, j'enlève bien 127... et ça ne marche pas quand même

Je vais regarder ton lien ! Merci beaucoup

Romain
Romain-des-Bois est déconnecté   Réponse avec citation
Vieux 21/09/2007, 15h12   #4
 
Date d'inscription: août 2005
Localisation: Paris
Âge: 49
Messages: 1 447
Re : [Numération] Représentation IEEE

Regarde également ici : http://babbage.cs.qc.edu/IEEE-754/Decimal.html
En fait tu ne peux avoir qu'une valeur approchée de 0.3
ericcc est déconnecté   Réponse avec citation
Vieux 21/09/2007, 15h14   #5
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
Re : [Numération] Représentation IEEE

Re !

J'avais trouvé le lien que tu viens de donner

Le lien vers "comment ça marche" est assez clair Merci !


Romain
Romain-des-Bois est déconnecté   Réponse avec citation
Vieux 21/09/2007, 15h17   #6
 
Date d'inscription: août 2006
Âge: 58
Messages: 2 914
Re : [Numération] Représentation IEEE

Citation:
Envoyé par Romain-des-Bois Voir le message
0,3 = 3.10-1

3 est la mantisse et -1 est l'exposant
il faut passer 0,3 en binaire avant de calculer la mantisse.
__________________
J'affirme péremptoirement que toute affirmation péremptoire est fausse
Médiat est déconnecté   Réponse avec citation
Vieux 21/09/2007, 15h45   #7
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
Re : [Numération] Représentation IEEE

Oui, je sais bien qu'il faut coder en binaire 0,3

Enfin, moi, je faisais :

0,3 = 3.10-1

et 3 = 11 en binaire

c'est peut-être pas comme ça qu'il faut faire...

Comment on code en binaire un nombre à virgule ? (j'ai vu des écritures du type 0,001100)



Romain
Romain-des-Bois est déconnecté   Réponse avec citation
Vieux 21/09/2007, 15h49   #8
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
Re : [Numération] Représentation IEEE

Je complète :

trouvé dans "comment ça marche" :

525,5 est positif donc le 1er bit sera 0.
Sa représentation en base 2 est la suivante : 1000001101,1

Romain-des-Bois est déconnecté   Réponse avec citation
Vieux 21/09/2007, 15h51   #9
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
Re : [Numération] Représentation IEEE

J'ai peut-être compris : 1 chiffre après la virgule pour l'écriture en décimal donc 1 chiffre après la virgule en binaire
Romain-des-Bois est déconnecté   Réponse avec citation
Vieux 21/09/2007, 17h20   #10
 
Date d'inscription: août 2006
Âge: 58
Messages: 2 914
Re : [Numération] Représentation IEEE

Citation:
Envoyé par Romain-des-Bois Voir le message
Oui, je sais bien qu'il faut coder en binaire 0,3

Enfin, moi, je faisais :

0,3 = 3.10-1

et 3 = 11 en binaire
Prenons un exemple simple : 0,5.
Avec ta méthode tu trouves mantisse = 5 soit 101 en binaire, en codant en binaire d'abord on trouve 0,1 donc une mantisse de 1, et attention à l'exposant qui est égal au nombre de déplacements en binaire !
__________________
J'affirme péremptoirement que toute affirmation péremptoire est fausse
Médiat est déconnecté   Réponse avec citation
Vieux 22/09/2007, 12h03   #11
 
Date d'inscription: juin 2006
Localisation: Grenoble
Messages: 174
Re : [Numération] Représentation IEEE

Il faut chercher la décomposition de x, unique, sous la forme :
x=m.2e, où 1/2 <= m < 1 et e entier relatif
Et puisque le premier bit de m vaut toujours 1 (m=0.1bbbbb...), celui-ci n'est
pas intégré dans l'encodage (il est implicite), ceci permettant d'augmenter la précision.
Disons que je ne suis pas sûr que la norme IEEE dise cela, mais je sais que certains systèmes font ainsi...

0.310 = 0.610 x 2–1 et
0.610 = 0.1001100110011001100110011001 1...2

Après, il faut arrondir au 24ème bit. Le 25ème étant 1, et les 23 et 24 étant 01, ces deux derniers bits sont changés en 10.
Donc 0.610 = 0.1001100110011001100110102

et donc m est encodé par 00110011001100110011010 sous l'hypoyhèse du premier bit implicite.
breukin est déconnecté   Réponse avec citation
Vieux 24/09/2007, 15h59   #12
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
Re : [Numération] Représentation IEEE

Bonjour !

j'ai un accès internet intermitent...

Bon, j'ai compris ! Merci à tous les deux



Romain
Romain-des-Bois est déconnecté   Réponse avec citation
Vieux 24/09/2007, 18h02   #13
 
Date d'inscription: juin 2006
Localisation: Grenoble
Messages: 174
Re : [Numération] Représentation IEEE

Reste à encoder e.
En fait, selon la décomposition de x telle que j'ai donnée, e est entier relatif.
Pour l'encoder, on rajoute 126, qui doit nécessairement être compris entre 0 et 255, encodé naturellement sur 8 bits.
Si e+126 est négatif, le réel est trop petit, et je pense qu'il sera encodé 0.
Si e+126>255, le réel est trop grand (en valeur absolue), et je pense qu'il sera encodé comme la valeur maximale.

Pourquoi 126 et pas 127 ?
En fait, une autre manière de représenter est la suivante :

x= (–1)S.(1+M/223).2E-127 où M entier entre 0 et 223–1 inclus, représenté par les 23 bits, E entre 0 et 255 représenté par les 8 bits. Donc 1+M/223, compris entre 1 inclu et 2 exclu, correspond à 2m.
breukin est déconnecté   Réponse avec citation
Vieux 25/09/2007, 11h10   #14
 
Date d'inscription: janvier 2005
Localisation: 34-1=33
Âge: 21
Messages: 3 272
Re : [Numération] Représentation IEEE

Citation:
Envoyé par breukin Voir le message
Reste à encoder e.
En fait, selon la décomposition de x telle que j'ai donnée, e est entier relatif.
Pour l'encoder, on rajoute 126, qui doit nécessairement être compris entre 0 et 255, encodé naturellement sur 8 bits.
Si e+126 est négatif, le réel est trop petit, et je pense qu'il sera encodé 0.
Si e+126>255, le réel est trop grand (en valeur absolue), et je pense qu'il sera encodé comme la valeur maximale.

Pourquoi 126 et pas 127 ?
En fait, une autre manière de représenter est la suivante :

x= (–1)S.(1+M/223).2E-127 où M entier entre 0 et 223–1 inclus, représenté par les 23 bits, E entre 0 et 255 représenté par les 8 bits. Donc 1+M/223, compris entre 1 inclu et 2 exclu, correspond à 2m.
OK merci, mais pour le codage de l'exposant, je n'avais pas de problème (tout était bien expliqué )


Romain
Romain-des-Bois est déconnecté   Réponse avec citation










A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités)
Réponse

Tags
codage

Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
numération maya albertchasse Mathématiques du collège et du lycée 2 10/10/2007 21h32
Articles IEEE Lopez2007 Physique 1 24/05/2007 15h20
Article dans le revue IEEE lui Électronique 0 26/04/2007 19h26
numération alpha_diese Mathématiques du collège et du lycée 2 19/11/2006 18h10
Bases de numération JPL Mathématiques du supérieur 14 06/01/2005 19h50


Les dernières actualités
20/11 17:31 - STS-126 : davantage de confort pour l'ISS et première sortie réussie
20/11 15:34 - Une réunion internationale au chevet du thon rouge de Méditerranée
20/11 14:08 - Le refroidissement de l'océan était dû... à une erreur instrumentale
20/11 12:59 - En ligne pour ta planète : un tchat sur le développement durable
20/11 11:31 - Le séisme de Sumatra serait dû à un mécanisme jusque-là inconnu
20/11 09:32 - Sida : une greffe de moelle osseuse fait reculer le VIH chez un patient
19/11 17:32 - L'image du jour : les incendies en Californie vus de l'espace

Fuseau horaire GMT +1. Il est actuellement 09h51.


Édité par : vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.