« Programmation/Abstraction » : différence entre les versions
Contenu supprimé Contenu ajouté
→Représentation des nombres : bricole |
→Représentation des nombres : bricoles |
||
Ligne 123 :
<math>765,432</math> vaut donc en binaire approximativement 1011111101,011011... Il s'agit d'un nombre à [[w:Fraction continue|fraction continue]] vu que ce que représente 765,432 en base 10 ne peut être représenté que par approximations successives en base 2.
On voit que pour la partie fractionnée des nombres, la notion de base est elle même biaisée. Par exemple si on voulait stocker la valeur réelle de <math>\frac{1}{3}</math> en base 10, il faudrait théoriquement un disque dur infini pour contenir tous les chiffres de la fraction récurrente (0,333333...). En base 3 la valeur réelle de <math>\frac{1}{3}</math> serait 0,1 et un simple [[w:Ruban perforé|Ruban perforé]] suffirait.
Pour éviter de générer des approximations qui n'existaient pas dans une base précédente, on
En informatique la virgule est en réalité une « étiquette » que l'on place dans une suite de chiffres finis dont les valeurs sont absolues.
Dans le cas d'un nombre à « virgule fixe » la virgule peut soit ne simplement pas être stockée en mémoire<!--a vérifier-->. C'est au programmeur seul qu'incombe la tâche de déclarer la présence d'une virgule entre deux chiffres de ce nombre. C'est le rôle notamment de l'indicateur « V » utilisé en [[COBOL]] par exemple. Ou bien le nombre peut être enregistrée sous une forme dite ''décimale codée binaire'' (ou DCB), qui décompose le nombre binaires en chiffres et leur associe à chacun soit un quartet en DCB condensé, soit un octet en DCB étendu. Sachant que 4 bits sont nécessaires pour représenter tous les chiffres décimaux, cela veut dire qu'en étendu 4 bits vides seront consommés pour chaque chiffre stocké. Il est donc rapidement apparu la nécessité de trouver un moyen moins gourmand en ressources pour traiter les « nombres à virgules ».
Une solution fut d'utiliser le principe de nombre à « virgule flottante ». On y considère tous les chiffres comme un seul nombre appelé ''mantisse'' qui sera converti en binaire (dans sa valeur globale, et non chiffre par chiffre) et stocké dans un jeu de valeurs. La puissance à laquelle la base est élevée (grossièrement la position de la virgule), appelée ''exposant'', est stockée dans un autre jeu de valeurs. Enfin un dernier jeu de valeurs indique le signe du nombre (un simple bit qui à 0 caractérise un nombre positif, à 1 un nombre négatif). L'ordonnancement de ces jeux de valeur varie selon la norme IBM ou IEEE (la première stocke le signe puis l'exposant puis la mantisse ; la deuxième stocke l'exposant puis le signe puis la mantisse).
|