Je ne comprends tout simplement pas les nombres à virgule fixe et à virgule flottante, car il est difficile de lire les définitions les concernant dans Google. Mais aucune de celles que j'ai lues ne fournit une explication assez simple de ce qu’elles sont réellement. Puis-je obtenir une définition simple avec un exemple?
Réponses
Trop de publicités?D'un point fixe nombre a un certain nombre de bits (ou chiffres) réservés pour la partie entière (la partie à gauche de la virgule), et un certain nombre de bits réservés pour la partie fractionnaire (la partie à droite de la virgule). Peu importe comment grand ou petit votre numéro, il utilise toujours le même nombre de bits pour chaque partie. Par exemple, si votre point fixe format en virgule IIIII.FFFFF
alors le plus grand nombre vous pourriez représenter serait 99999.99999
, et le plus petit serait 00000.00001
. Tous les bits de code qui traite de ces numéros est d'avoir intégré dans la connaissance de l'endroit où le point décimal est.
Un nombre à virgule flottante ne réserve pas d'un nombre de bits pour la partie entière ou la partie fractionnaire. Au lieu de cela il se réserve un certain nombre de bits pour le nombre (appelé mantisse ou significande) et un certain nombre de bits à dire où à l'intérieur de ce numéro de la décimale est assis (appelé l' exposant). Ainsi, un nombre à virgule flottante qui ont 10 chiffres avec 2 chiffres réservés pour l'exposant peut représenter une plus grande valeur de 9.9999999e+50
et une plus petite valeur de 0.0000001e-49
.
D'un point fixe nombre signifie simplement qu'il y a un nombre fixe de chiffres après le point décimal. Un nombre à virgule flottante permet un nombre variable de chiffres après le point décimal.
Par exemple, si vous avez un moyen de stocker des nombres qui nécessite exactement quatre chiffres après la virgule, puis on fixe le point. Sans cette restriction, il est en virgule flottante.
Souvent, lorsque le point fixe est utilisé, le programmeur utilise un entier, puis fait l'hypothèse que certains de ces chiffres sont au-delà de la virgule décimale. Par exemple, je pourrais avoir besoin de la tenir à deux chiffres de précision, donc une valeur de 100 signifie que signifie, en réalité, 1.00, 101 signifie 1.01, 12345 signifie 123.45, etc.
Les nombres à virgule flottante sont plus d'usage général, car ils peuvent représenter de très petits ou très grands nombres de la même manière, mais il y a une petite pénalité pour avoir de stockage supplémentaire pour le cas où le nombre de décimales va.
Le terme de "point fixe" se réfère à la correspondante de la manière dont les nombres sont représentés, avec un nombre fixe de chiffres après, et parfois même avant, le point décimal. Avec la représentation à virgule flottante, le placement de la virgule peut "flotter", par rapport aux chiffres significatifs de le nombre. Par exemple, un point fixe de la représentation avec l'uniforme du point décimal de placement convention peut représenter les nombres 123.45, 1234.56, 12345.67, etc, alors qu'une représentation à virgule flottante peuvent en outre représenter 1.234567, 123456.7, 0.00001234567, 1234567000000000, etc.
Prendre le numéro 123.456789
- En tant qu'entier, ce nombre serait 123
- En tant que point fixe (2), ce nombre serait 123,46 (en supposant que vous l’ayez arrondi)
- En virgule flottante, ce nombre serait 123.456789
La virgule flottante vous permet de représenter la plupart des nombres avec beaucoup de précision. Fixed est moins précis, mais plus simple pour l'ordinateur.