Ich kann Festkomma- und Gleitkommazahlen einfach nicht verstehen, da die Definitionen in ganz Google schwer zu lesen sind. Aber keine, die ich gelesen habe, liefert eine hinreichend einfache Erklärung dafür, was sie wirklich sind. Kann ich eine einfache Definition mit Beispiel erhalten?
numbers
computer-science
representation
user942451
quelle
quelle
Antworten:
Eine Festkommazahl hat eine bestimmte Anzahl von Bits (oder Ziffern), die für den ganzzahligen Teil (den Teil links vom Dezimalpunkt) reserviert sind, und eine bestimmte Anzahl von Bits, die für den Bruchteil reserviert sind (den Teil rechts von der Dezimalstelle) Punkt). Egal wie groß oder klein Ihre Anzahl ist, es wird immer die gleiche Anzahl von Bits für jeden Teil verwendet. Wenn Ihr Festkommaformat beispielsweise dezimal
IIIII.FFFFF
wäre, wäre die größte Zahl, die Sie darstellen könnten,99999.99999
und die kleinste Zahl ungleich Null00000.00001
. Jedes Codebit, das solche Zahlen verarbeitet, muss wissen, wo sich der Dezimalpunkt befindet.Eine Gleitkommazahl reserviert keine bestimmte Anzahl von Bits für den ganzzahligen Teil oder den gebrochenen Teil. Stattdessen reserviert es eine bestimmte Anzahl von Bits für die Anzahl ( Mantisse oder Signifikand genannt ) und eine bestimmte Anzahl von Bits, um zu sagen, wo innerhalb dieser Zahl die Dezimalstelle liegt ( Exponent genannt ). Eine Gleitkommazahl, die 10 Stellen mit 2 für den Exponenten reservierten Stellen einnimmt, kann also einen größten Wert von
9.9999999e+50
und einen kleinsten Wert ungleich Null von darstellen0.0000001e-49
.quelle
-9.9999999e+50
.00000.00001
? Ich erwarte00000.00000
stattdessen zu sehen . Haben Sie auch Referenzen, die detaillierter auf Festkommazahlen eingehen?Eine feste Punktnummer bedeutet nur, dass nach dem Dezimalpunkt eine feste Anzahl von Stellen steht. Eine Gleitkommazahl ermöglicht eine unterschiedliche Anzahl von Stellen nach dem Dezimalpunkt.
Wenn Sie beispielsweise Zahlen speichern können, für die genau vier Nachkommastellen erforderlich sind, handelt es sich um einen festen Punkt. Ohne diese Einschränkung ist es Gleitkomma.
Wenn ein fester Punkt verwendet wird, verwendet der Programmierer häufig tatsächlich eine Ganzzahl und geht dann davon aus, dass einige der Ziffern über dem Dezimalpunkt liegen. Zum Beispiel möchte ich vielleicht zwei Stellen genau halten, also bedeutet ein Wert von 100 tatsächlich 1,00, 101 bedeutet 1,01, 12345 bedeutet 123,45 usw.
Gleitkommazahlen sind allgemeiner, da sie auf die gleiche Weise sehr kleine oder sehr große Zahlen darstellen können. Es ist jedoch ein kleiner Nachteil, zusätzlichen Speicherplatz für die Dezimalstelle zu benötigen.
quelle
Nach meinem Verständnis wird die Festkomma-Arithmetik mit ganzen Zahlen durchgeführt. wobei der Dezimalteil in einer festen Anzahl von Bits gespeichert ist oder die Zahl mit der Anzahl der benötigten Dezimalstellen multipliziert wird.
Wenn zum Beispiel die Zahl
12.34
gespeichert werden muss und nach dem Dezimalpunkt nur zwei Stellen Genauigkeit benötigt werden, wird die Zahl mit multipliziert, um100
zu erhalten1234
. Wenn wir mit dieser Zahl rechnen, verwenden wir diesen Regelsatz. Das Hinzufügen5620
oder56.20
zu dieser Zahl würde6854
in Daten oder ergeben68.54
.Wenn wir den Dezimalteil einer Festkommazahl berechnen möchten, verwenden wir den Operanden modulo (%).
12,34 (Pseudocode):
Gleitkommazahlen sind eine ganz andere Geschichte in der Programmierung. Der aktuelle Standard für Gleitkommazahlen verwendet etwa 23 Bit für die Daten der Zahl, 8 Bit für den Exponenten und 1 Bit für das Vorzeichen. Weitere Informationen hierzu finden Sie unter diesem Wikipedia-Link.
quelle
Der Begriff "Festpunkt" bezieht sich auf die entsprechende Art und Weise, in der Zahlen dargestellt werden, mit einer festen Anzahl von Ziffern nach und manchmal vor dem Dezimalpunkt. Bei der Gleitkomma-Darstellung kann die Platzierung des Dezimalpunkts relativ zu den signifikanten Ziffern der Zahl "schweben". Beispielsweise kann eine Festkomma-Darstellung mit einer einheitlichen Dezimalpunkt-Platzierungskonvention die Zahlen 123,45, 1234,56, 12345,67 usw. darstellen, während eine Gleitkomma-Darstellung zusätzlich 1,234567, 123456,7, 0,00001234567, 1234567000000000 usw. darstellen könnte.
quelle
Nehmen Sie die Nummer 123.456789
Mit Gleitkomma können Sie fast jede Zahl mit großer Präzision darstellen. Behoben ist weniger präzise, aber einfacher für den Computer.
quelle