type float précision 6 maximale codé sur 4 bytes.
type double précision 15 maximale codé sur 8 bytes.
type long double précision 19 maximale codé sur 10 bytes.
Je pense que le l'inexactitude vient du codage interne des float, double, long double sous forme de:
mantisse, exposant, signe.
Si tu te demande ce qu'est une mantisse, un exposant: utilise le formateur %e.
Par exemple: 1.234568e+08
mantisse: 1.234568
exposant: 08
signe: +
Le nombre de bits attribuer a la mantisse et a l'exposant dépendent du type et un bit pour le signe (d'ailleurs je crois que le 10 ième byte du long double ne sert que a stocker le signe).
L'ordinateur ne peut pas stocker les valeurs exactes selon ce système de codage, mais des valeurs très proches.
La FPU (Floating-Point Unit) qui sert (servait) a stocker les nombre a virgule est composé de 8 registre de de 80 bits (10 bytes) sur un ordinateur 32 bits.
Mais actuellement ont joue avec des registres XMM (128 bits) ou YMM (256 bits) sur les machines 64 bits.
Ont peut stocker plusieurs nombres a virgules a la fois dans un registre:
[^] # Re: précision des flottants
Posté par Linuxator . En réponse au message Une calculatrice multibases écrit en C avec GTK+3.. Évalué à 1.
Il faut savoir que:
type float précision 6 maximale codé sur 4 bytes.
type double précision 15 maximale codé sur 8 bytes.
type long double précision 19 maximale codé sur 10 bytes.
Je pense que le l'inexactitude vient du codage interne des float, double, long double sous forme de:
mantisse, exposant, signe.
Si tu te demande ce qu'est une mantisse, un exposant: utilise le formateur %e.
Par exemple: 1.234568e+08
mantisse: 1.234568
exposant: 08
signe: +
Le nombre de bits attribuer a la mantisse et a l'exposant dépendent du type et un bit pour le signe (d'ailleurs je crois que le 10 ième byte du long double ne sert que a stocker le signe).
L'ordinateur ne peut pas stocker les valeurs exactes selon ce système de codage, mais des valeurs très proches.
La FPU (Floating-Point Unit) qui sert (servait) a stocker les nombre a virgule est composé de 8 registre de de 80 bits (10 bytes) sur un ordinateur 32 bits.
Mais actuellement ont joue avec des registres XMM (128 bits) ou YMM (256 bits) sur les machines 64 bits.
Ont peut stocker plusieurs nombres a virgules a la fois dans un registre:
-) 4 floats (simple précision.) XMM.
-) 2 double (double précision.) XMM.
Et effectuer des opérations simultanément sur plusieurs nombres (Simple Instruction Multiple Data) dans ces registres, en assembleur.
En espérant ne pas trop avoir dit de bêtises.