Nombres réels en binaire

DarkPeace -  
Marden Messages postés 1075 Statut Membre -
sur la page http://www.commentcamarche.net/base/representation.php3
il y a un exemple qui dit que...
525,5 s'écrit en base 2 de la façon suivante:
1000001101,1

...mais je ne comprend pas comment ,1 pour peut représenter ,5
d'où ça vient le ,1 ?

1 réponse

  1. Marden Messages postés 1075 Statut Membre 210
     
    A droite de la virgule :
    le premier chiffre correspond à (2 puissance -1 soit 0.5),
    le second chiffre correspond à (2 puissance -2, soit 0.25),
    etc
    1
    1. DarkPeace Messages postés 4 Statut Membre
       
      Dis-moi si je me trompe, mais de cette façon c'est très difficile (ou impossible) de représenter des nombres précis. Par exemple 5,37.
      Comment tu l'écrirais toi?
      (sous la forme 101,...)
      0
      1. Marden Messages postés 1075 Statut Membre 210 > DarkPeace Messages postés 4 Statut Membre
         
        Le mode de codage que tu décris est de type "à virgule fixe" , le nombre de "binales" (? ~= "décimales) est fourni, en général, dans les formats de lecture ou d'écriture, voir les déclarations de zones (du Cobol).

        Comment décomposer 5,37 :
        ...
        contient : _______4 (2 puiss 2) : oui ---> 1
        contient : _______ 2 (2 puiss 1) : non ---> 0
        contient : _______1 (2 puiss 0) : oui ---> 1
        contient : _____0.5 (2 puiss -1) : non---> 0
        contient : ____0.25 (2 puiss -2) : oui ---> 1
        contient : ___0.125 (2 puiss -3) : non---> 0

        résultat : 101.010

        Comme en décimal, il y a des problèmes de troncatures et d'arrondi. De même nature que la division par 3 (....,3333...).
        Dans ton exemple, la valeur la plus proche serait : 101.011 (à régler par hard ou soft). Le problème se pose effectivement dans les opérations faisant intervenir des grands nombres avec de très petits (comme la différence de 2 produits : a1*x1 - a2*x2, opérations fréquentes dans le calcul matriciel). C'est même une spécialité que de mettre en place des méthodes de calcul de ce type.
        0