Je ne peux tout simplement pas comprendre les nombres à virgule fixe et flottante en raison de définitions difficiles à lire à leur sujet partout sur Google. Mais aucun de ceux que j'ai lus ne fournit une explication assez simple de ce qu'ils sont vraiment. Puis-je obtenir une définition simple avec un exemple?
numbers
computer-science
representation
user942451
la source
la source
Réponses:
Un nombre à virgule fixe a un nombre spécifique de bits (ou chiffres) réservés pour la partie entière (la partie à gauche de la virgule décimale) et un nombre spécifique de bits réservés pour la partie fractionnaire (la partie à droite de la virgule point). Peu importe la taille de votre nombre, il utilisera toujours le même nombre de bits pour chaque partie. Par exemple, si votre format de virgule fixe était en décimal,
IIIII.FFFFF
le plus grand nombre que vous pourriez représenter serait99999.99999
et le plus petit nombre différent de zéro serait00000.00001
. Chaque bit de code qui traite de tels nombres doit avoir une connaissance intégrée de l'emplacement de la virgule décimale.Un nombre à virgule flottante ne réserve pas un nombre spécifique de bits pour la partie entière ou la partie fractionnaire. Au lieu de cela, il réserve un certain nombre de bits pour le nombre (appelé mantisse ou significande ) et un certain nombre de bits pour dire où dans ce nombre se trouve la décimale (appelée exposant ). Ainsi, un nombre à virgule flottante qui a pris 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 différente de zéro de0.0000001e-49
.la source
-9.9999999e+50
.00000.00001
? Je m'attends à voir à la00000.00000
place. De plus, avez-vous des références plus détaillées sur les nombres à virgule fixe?Un nombre à virgule fixe signifie simplement qu'il y a un nombre fixe de chiffres après la virgule décimale. Un nombre à virgule flottante permet un nombre variable de chiffres après la virgule décimale.
Par exemple, si vous avez un moyen de stocker des nombres qui nécessite exactement quatre chiffres après la virgule décimale, alors il s'agit de virgule fixe. Sans cette restriction, c'est en virgule flottante.
Souvent, lorsque la virgule fixe est utilisée, le programmeur utilise en fait un entier et fait alors l'hypothèse que certains des chiffres sont au-delà de la virgule décimale. Par exemple, je pourrais vouloir garder deux chiffres de précision, donc une valeur de 100 signifie en fait 1,00, 101 signifie 1,01, 12345 signifie 123,45, etc.
Les nombres à virgule flottante sont plus généraux car ils peuvent représenter des nombres très petits ou très grands de la même manière, mais il y a une petite pénalité à devoir disposer d'un stockage supplémentaire pour l'emplacement de la décimale.
la source
D'après ce que je comprends, l'arithmétique à virgule fixe est effectuée à l'aide d'entiers. où la partie décimale est stockée dans une quantité fixe de bits, ou le nombre est multiplié par le nombre de chiffres de précision décimale nécessaires.
Par exemple, si le nombre
12.34
doit être stocké et que nous n'avons besoin que de deux chiffres de précision après la virgule décimale, le nombre est multiplié par100
pour obtenir1234
. Lors de l'exécution de calculs sur ce nombre, nous utiliserions cet ensemble de règles. Ajouter5620
ou56.20
à ce nombre donnerait des6854
données ou68.54
.Si nous voulons calculer la partie décimale d'un nombre à virgule fixe, nous utilisons l'opérande modulo (%).
12,34 (pseudocode):
Les nombres à virgule flottante sont une histoire complètement différente dans la programmation. La norme actuelle pour les nombres à virgule flottante utilise quelque chose comme 23 bits pour les données du nombre, 8 bits pour l'exposant et 1 pour le signe. Voir ce lien Wikipedia pour plus d'informations à ce sujet.
la source
Le terme «virgule fixe» fait référence à la manière correspondante dans laquelle les nombres sont représentés, avec un nombre fixe de chiffres après, et parfois avant, la virgule décimale. Avec une représentation à virgule flottante, le placement de la virgule décimale peut «flotter» par rapport aux chiffres significatifs du nombre. Par exemple, une représentation en virgule fixe avec une convention de placement de virgule décimale uniforme peut représenter les nombres 123,45, 1234,56, 12345,67, etc., alors qu'une représentation en virgule flottante pourrait en plus représenter 1,234567, 123456,7, 0,00001234567, 1234567000000000, etc.
la source
Prenez le numéro 123.456789
La virgule flottante vous permet de représenter la plupart des nombres avec une grande précision. Fixe est moins précis, mais plus simple pour l'ordinateur.
la source