Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

[Numération] Représentation IEEE



  1. #1
    Romain-des-Bois

    [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

    -----

  2. Publicité
  3. #2
    ericcc

    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.

  4. #3
    Romain-des-Bois

    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

  5. #4
    ericcc

    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

  6. A voir en vidéo sur Futura
  7. #5
    Romain-des-Bois

    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

  8. #6
    Médiat

    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.
    Je suis Charlie.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse

  9. Publicité
  10. #7
    Romain-des-Bois

    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

  11. #8
    Romain-des-Bois

    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


  12. #9
    Romain-des-Bois

    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

  13. #10
    Médiat

    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 !
    Je suis Charlie.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse

  14. #11
    breukin

    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.

  15. #12
    Romain-des-Bois

    Re : [Numération] Représentation IEEE

    Bonjour !

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

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



    Romain

  16. Publicité
  17. #13
    breukin

    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.

  18. #14
    Romain-des-Bois

    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

Discussions similaires

  1. numération maya
    Par albertchasse dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 10/10/2007, 20h32
  2. Articles IEEE
    Par Lopez2007 dans le forum Physique
    Réponses: 1
    Dernier message: 24/05/2007, 14h20
  3. Article dans le revue IEEE
    Par lui dans le forum Électronique
    Réponses: 0
    Dernier message: 26/04/2007, 18h26
  4. numération
    Par alpha_diese dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 19/11/2006, 17h10
  5. Bases de numération
    Par JPL dans le forum Mathématiques du supérieur
    Réponses: 14
    Dernier message: 06/01/2005, 18h50