Pages

Ads 468x60px

vendredi 30 septembre 2011

Représentation à "virgule fixe"


A l'instar de la définition des nombres binaires naturels,
nous pourrions définir un réel positif par une convention du même type :
Exemple : le nombre 1010,101 peut représenter la somme suivante :

Soit, en écriture décimale : 8 + 2+ 0,5 + 0,125 = 10,625
Sous une autre forme :

On peut rigoureusement démonter que tout nombre réel positif pourrait ainsi écrit de cette manière.
Resterait à décrire le signe, ce qui peut être fait par un bit particulier (bit de signe)
ou par une convention de type complément à deux.
Beaucoup de ces variantes ont été utilisées dans les calculateurs.

1010 est la partie entière du nombre,
101 sa partie fractionnaire.
Exemple du calcul inverse : traduire en binaire le nombre 78,347
Partie entière : 78
Nous opérons une suite de divisions par 2 et retenons les divers restes.
Ces restes sont repris à l'envers
Partie fractionnaire : 0,347

En réalité, 2-10 = 0,0009765625 est la valeur de 0,000 000 000 1, le dernier chiffre binaire à droite du nombre ci-dessus.
L'erreur dûe au fait de négliger les résultats à droite de ce chiffre est inférieure à 210-11 = 0,00048828125.
Résultat final :
78,347 écrit en décimal
représente 1001110,0101100011 écrit en binaire à moins de 2 -11 près
Reste cependant que cette représentation à virgule fixe est souvent dispendieuse en nombre de bits !
Imaginons que l'on veuille écrire tous les réels de 0 à 65 635.
Le sous-ensemble d'entiers de cet intervale s'écrit sous 16 bits : 216 = 65 536.
Si la précision maximale que nous voulons atteindre est seulement de 1/216-1 = 1/65 535
Nous devrons écrire seize chiffres après la virgule ;exemple 1010 0101 1100 1111,0110 1110 1101 0111
Pour de petits nombres, il y gaspillage de bits à gauche de la virgule : 101,001001100
Pour des nombres à peu de décimales, il y aura gaspillage de bits après la virgule : 1100 1111,01
Néanmoins ce système a été réellement employé dans certains types de calculateurs.

Aucun commentaire:

Enregistrer un commentaire