Codage
- codage : la position de la virgule est fixée lors de l'écriture du programme (ou de la conception du circuit).
Exemple : codage en virgule fixe "8,8"
= 171,78515625 position de la virgule - calcul : méthodes arithmétiques entières.
Exemple : codage en virgule fixe "8,8"
171,78515625 + + 52,39453125 = = 224,1796875 La présence de la virgule ne change rien à l'opération : on effectue l'addition de deux valeurs de 16 bits comme si elles représentaient des nombres entiers. Ceci signifie que si l'on sait effectuer des opérations sur les entiers, on sait aussi effectuer les mêmes opérations sur des nombres en virgule fixe (la multiplication et la division nécessitant quand même un peu plus de travail que l'addition). - stockage : utilisation des types entiers classiques (int, short,...)
Propriétés du codage
- utilisation de l'arithmétique entière
- signe par complément à 2 sans modification du codage
Exemple : codage en virgule fixe "4,4"
+2,6875 ⬇ inversion ⬇ + = -2,6875 - la précision dépend de la position de la virgule : il faut connaître à l'avance (lors de l'écriture du programme) l'ordre de grandeur des nombres à manipuler afin de positionner au mieux la virgule.
Exemples :
codage en virgule fixe "4,4"
0,0625 15,9375
codage en virgule fixe "1,7"
0,0078125 1,9921875
La nécessité de connaître à l'avance la précision nécessaire, et donc l'ordre de grandeur des nombres à manipuler, est un inconvénient majeur : ce type de connaissance a priori existe pour certaines applications, mais dans le cas général ce n'est pas le cas. Pour pallier à ce manque de flexibilité, le concept de virgule flottante a été introduit.