www.wikidata.de-de.nina.az
Eine Festkommazahl ist eine Zahl die aus einer festen Anzahl von Ziffern vor und nach dem Komma besteht Die Position des Kommas ist also fest vorgegeben daher der Name Der Grundgedanke dahinter ist die informationstechnische Reprasentation eines Ausschnitts der rationalen Zahlen Diese Abbildung auf einen begrenzt grossen Datentypen typischerweise Integer verschiedener Bitbreiten erfordert eine feste Anzahl von Ziffern fur den Vorkomma wie den Nachkommaanteil Ublicherweise sind gemass Definition die ersten n k displaystyle n leq k Stellen Vorkommastellen und die restlichen m k n displaystyle m k n Nachkommastellen In der Informatik haben die dezimalen wie die binaren Festkommazahlen eine grosse praktische Bedeutung Inhaltsverzeichnis 1 Vor und Nachteile gegenuber einer Gleitkommazahl 1 1 Rechenaufwand 1 2 Prazision und Dynamik 2 Reprasentationsbeispiel Binare Festkommazahl 3 Rechnen mit Festkommazahlen 3 1 Anwendungsbeispiele 4 Probleme 5 Nomenklatur des Zahlenformats 6 Dezimale Festkommazahl 7 Siehe auch 8 Weblinks 9 EinzelnachweiseVor und Nachteile gegenuber einer Gleitkommazahl BearbeitenRechenaufwand Bearbeiten Durch die feste Position des Dezimalkommas fallt Rechenaufwand im Vergleich zur Rechnung mit Gleitkommazahlen weg Wird in einem Computerprogramm eine binare Festkommadarstellung gewahlt konnen zudem die zur Umrechnung und Korrektur notwendigen Multiplikationen und Divisionen durch schnelle Schiebeoperationen ersetzt werden Ein Beispiel fur eine Applikation die gezielt aus Rechenaufwandsgrunden mit Festkomma Arithmetik entworfen wurde ist z B Fractint ein Fraktalgenerator 1 Seit Mitte der 1990er Jahre haben Prozessoren dedizierte Gleitkommarechenwerke die dazu fuhren dass die Berechnung von Fraktalen mit Gleitkommazahlen schneller als die mit Ganzzahlen ist Prazision und Dynamik Bearbeiten Aufgrund der exakten Darstellung ist der Wertebereich einer Festkommazahl kleiner als der jeweilige Wertebereich einer Gleitkommazahl der gleichen Bit Lange Dafur ist jedoch die Exaktheit der Darstellung einer Zahl im gesamten Wertebereich gesichert bei Gleitkommazahlen nicht immer z B durch Absorption 2 Ein Beispiel fur eine Anwendung die genaue Arithmetik benotigt und daher Festkommazahlen verwendet ist GnuCash 3 Reprasentationsbeispiel Binare Festkommazahl BearbeitenAlle binaren Festkommazahlen der Lange k 2 displaystyle k 2 nbsp und n displaystyle n nbsp Vorkommastellen mit n 0 1 2 displaystyle n in 0 1 2 nbsp n 2 n 1 n 0Binarmuster Binar Dezimal Binar Dezimal Binar Dezimal00 00 0 0 0 0 0 00 0 0001 01 1 0 1 0 5 01 0 2510 10 2 1 0 1 0 10 0 5011 11 3 1 1 1 5 11 0 75Man beachte dass jedes der vier aufgelisteten binaren Muster fur jeweils drei unterschiedliche Zahlen steht je nachdem an welche Stelle das Komma gesetzt wird Da die Anzahl der Vorkommastellen bereits per Definition fest liegt ist es unnotig das sonst ubliche Komma zu schreiben beziehungsweise zu speichern d h die Reprasentation ist immer die der Spalte Binarmuster Rechnen mit Festkommazahlen BearbeitenBei der Rechnung mit Festkommazahlen werden die binaren Muster prinzipiell so verarbeitet wie bei der Rechnung mit ganzen Zahlen Festkomma Arithmetik kann daher von jedem digitalen Prozessor durchgefuhrt werden der arithmetische Operationen mit ganzen Zahlen unterstutzt Dennoch sind einige Regeln zu beachten die sich auf die Position des Kommas vor und nach der Rechenoperation beziehen Bei Addition und Subtraktion muss die Position des Kommas fur alle Operanden identisch sein Ist dies nicht der Fall sind die Operanden durch Schiebeoperationen entsprechend anzugleichen Die Kommaposition des Ergebnisses entspricht dann der Kommaposition der Operanden Bei Multiplikation entspricht die Anzahl der Nachkommastellen des Ergebnisses der Summe der Anzahlen der Nachkommastellen aller Operanden Eine Division oder Multiplikation mit einer Potenz 2 n displaystyle 2 n nbsp entspricht einer Bit Schiebe Operation des binaren Musters nach rechts bzw links um n displaystyle n nbsp Stellen bei gleichbleibender Kommaposition Alternativ kann die Operation als imaginare Verschiebung des Kommas aufgefasst werden Anwendungsbeispiele Bearbeiten Die folgenden Beispiele gehen von einer dezimalen Festkommadarstellung aus bei der zwei Nachkommastellen vorgesehen sind Dies wird durch den Faktor 100 ausgedruckt mit denen die ursprunglichen Werte multipliziert wurden um die Festkommadarstellung zu erhalten In der Festkommadarstellung 6 3 630 F displaystyle 6 3 rightarrow 630 F nbsp 2 1 210 F displaystyle 2 1 rightarrow 210 F nbsp Addition 630 F 210 F 840 F displaystyle 630 F 210 F 840 F nbsp 840 F 8 4 displaystyle 840 F rightarrow 8 4 nbsp Subtraktion 630 F 210 F 420 F displaystyle 630 F 210 F 420 F nbsp 420 F 4 2 displaystyle 420 F rightarrow 4 2 nbsp Multiplikation 630 F 210 F 132300 displaystyle 630 F times 210 F 132300 nbsp Hier ist das Ergebnis keine Festkommazahl nach denselben Kriterien wie die beiden Faktoren eine Korrektur ist notwendig hier Division durch 100 132300 100 1323 F 13 23 displaystyle 132300 100 1323 F rightarrow 13 23 nbsp Division 630 F 210 F 3 displaystyle frac 630 F 210 F 3 nbsp Hier ist das Ergebnis keine Festkommazahl nach denselben Kriterien wie Dividend und Divisor eine Korrektur ist notwendig hier Multiplikation mit 100 3 100 300 F 3 00 displaystyle 3 times 100 300 F rightarrow 3 00 nbsp Beispiel in binarer 8 bit Darstellung mit 4 Nachkommastellen und Schiebeoperation wie sie z B in Rechnerarchitekturen verwendet wirdDezimal 3 5 d 2 5 d 8 75 d displaystyle 3 5 d times 2 5 d 8 75 d nbsp Binar 0011 100 0 b 0010 100 0 b 0000 1000 110 0 0000 b displaystyle 0011 1000 b times 0010 1000 b 0000 1000 1100 0000 b nbsp Berechnung in der 8 Bit Festkommadarstellung mit 4 Nachkommastellen 3 5 d 0011 1000 b displaystyle 3 5 d rightarrow 0011 1000 b nbsp 2 5 d 0010 1000 b displaystyle 2 5 d rightarrow 0010 1000 b nbsp Multiplikation 0011 1000 b 0010 1000 b 0000 1000 1100 0000 b displaystyle 0011 1000 b times 0010 1000 b 0000 1000 1100 0000 b nbsp Ergebnis in der Festkommadarstellung 1100 0000 b displaystyle 1100 0000 b nbsp mit der Bedeutung 1100 000 0 b 12 d displaystyle 1100 0000 b 12 d nbsp Fehlerhafte Darstellung der Kommaposition daher ist die Schiebeoperation notwendig 0011 100 0 b 0010 100 0 b 0000 1000 110 0 0000 b displaystyle 0011 1000 b times 0010 1000 b 0000 1000 1100 0000 b nbsp Ergebnis ware hier entsprechend der 8 Bit Festkommadarstellung mit 4 Nachkommastellen 1000 110 0 b 8 75 d displaystyle 1000 1100 b 8 75 d nbsp Das Ergebnis nach der Korrektur entspricht nun dem erwarteten Ergebnis Probleme BearbeitenBei der Darstellung einer reellen Zahl z displaystyle z nbsp kann es einige Probleme geben Im Folgenden hat die Festkommazahl angelehnt an die Darstellung in einem Rechner eine Lange von k 8 displaystyle k 8 nbsp und n m 4 displaystyle n m 4 nbsp Vor und Nachkommastellen Der Ziffernvorrat sei 0 1 displaystyle 0 1 nbsp also eine binare Festkommazahl der Lange eines Bytes mit gleich vielen Vor und Nachkommastellen Der tiefgestellte Index bezeichnet die Darstellung der Zahl X R displaystyle X R nbsp fur eine reelle Zahl in ublicher Dezimaldarstellung und X F displaystyle X F nbsp fur eine derartige Festkommazahl 0 R 00000000 F displaystyle 0 R 00000000 F nbsp 1 R 00010000 F displaystyle 1 R 00010000 F nbsp 10 R 10100000 F displaystyle 10 R 10100000 F nbsp 0 5 R 00001000 F displaystyle 0 5 R 00001000 F nbsp 0 625 R 00001010 F displaystyle 0 625 R 00001010 F nbsp 0 062 5 R 00000001 F displaystyle 0 0625 R 00000001 F nbsp 15 937 5 R 11111111 F displaystyle 15 9375 R 11111111 F nbsp 16 R gt 11111111 F displaystyle 16 R gt 11111111 F nbsp 0 06 R lt 00000001 F displaystyle 0 06 R lt 00000001 F nbsp 7 7 R 01111011 F displaystyle 7 7 R approx 01111011 F nbsp Wie man sieht konnen also mit acht Bits und vier Vor und Nachkommastellen nur Festkommazahlen zwischen 0 R displaystyle 0 R nbsp und 15 937 5 R displaystyle 15 9375 R nbsp bei einer Auflosung von 0 062 5 R displaystyle 0 0625 R nbsp dargestellt werden Dieser geringe Darstellungsbereich ist auch der entscheidende Nachteil gegenuber Gleitkommazahlen Weiterhin entstehen wie auch bei Gleitkommazahlen Rundungsfehler bei der Umwandlung der dezimalen reellen Zahlen in eine binare Festkommadarstellung 7 R 01110000 F displaystyle 7 R 01110000 F nbsp kann im Gegensatz zu 0 7 R 00001011 F displaystyle 0 7 R approx 00001011 F nbsp exakt dargestellt werden 0 7 R displaystyle 0 7 R nbsp kann allerdings bei noch so vielen Nachkommastellen nicht als Summe von Zweierpotenzen dargestellt werden Um diese Probleme zu umgehen kann aber bei Bedarf eine dezimale Festkommadarstellung eingesetzt werden Nomenklatur des Zahlenformats BearbeitenDas Zahlenformat fur Festkommazahlen mit einer Nachkommastelle wird auch als Q1 bezeichnet mit zwei Nachkommastellen Q2 usw Bei einer Wortlange von mehreren Bits kann das Format noch genauer mit der Angabe der Vorkommastellen angegeben werden Hierbei werden die Vor und Nachkommastellen durch einen Punkt getrennt Eine Festkommazahl mit acht Bits kann beispielsweise als Q7 1 bzw Q6 2 bezeichnet werden Dezimale Festkommazahl BearbeitenInsbesondere bei Geldbetragen ist die Nutzung von dezimalen Festkommazahlen sinnvoll Wird ein bestimmter Rechnungsbetrag beispielsweise zunachst mit einer Anzahlung und spater mit einer Restzahlung beglichen kann es bei Verwendung von Gleitkommazahlen vorkommen dass aufgrund von Rundungsfehlern ein Restbetrag oder Guthaben von weit unter der kleinsten Wahrungseinheit ubrig bleibt Entsprechende Auftrage in einer Datenbank wurde man spater bei einer Suche nach nicht vollstandig bezahlten Auftragen also mit Restbetrag ungleich 0 finden da der Restbetrag sehr klein aber eben nicht 0 ist In den meisten Programmiersprachen und Datenbanken gibt es darum einen Datentyp der englisch Currency dt Wahrung Money Geld oder Decimal Dezimalzahl genannt wird Ihm liegt eine Ganzzahl mit Vorzeichen Signed Integer zugrunde meist von 64 Bit Lange Zuweisung Addition und Subtraktion zweier solcher Datentypen untereinander erfolgen wie bei einem Integer ebenso Multiplikation von Festkommazahl und Integer sowie abrundende Division einer dezimalen Festkommazahl durch ein Integer Bei anderen Operationen die zudem unter Umstanden verlustbehaftet sind muss der Computer die Anzahl der Nachkommastellen beachten Diese ist in manchen Sprachen frei definierbar Falls dies nicht der Fall ist hat der Datentyp ublicherweise vier Nachkommastellen und konnte informell als Zehntausendstel bezeichnet werden Derzeit auf der Welt vorhandene Wahrungsuntereinheiten neben den weitverbreiteten Hundertsteln sind Funftel Mauretanien und Madagaskar und in der MENA Region Tausendstel vgl Dezimalwahrung die sich somit darstellen lassen Der Wertebereich einer 64 Bit Zahl mit vier Nachkommastellen ist 922 337 203 685 477 5808 bis 922 337 203 685 477 5807 Das ist rund das Zehnfache der Weltwirtschaftsleistung 2017 in Dollar Eine 32 Bit Zahl mit vier Nachkommastellen in T SQL beispielsweise smallmoney wortlich kleines Geld genannt erlaubt Zahlen von 214 748 3648 bis 214 748 3647 Siehe auch BearbeitenNegative Festkommazahlen per Zweierkomplement BCD CodeWeblinks Bearbeiten nbsp Wiktionary Festkommazahl Bedeutungserklarungen Wortherkunft Synonyme UbersetzungenEinzelnachweise Bearbeiten Noel Giffin Fractint A Little Code Limitations of Integer Math And How We Cope Nehee Enterprises archiviert vom Original am 19 Mai 2012 abgerufen am 9 Juli 2012 David Goldberg What Every Computer Scientist Should Know About Floating Point Arithmetic In ACM Computing Surveys 23 Jahrgang 1991 S 5 48 doi 10 1145 103162 103163 oracle com abgerufen am 2 September 2010 What s new in GnuCash 1 6 gnucash org abgerufen am 3 September 2010 Abgerufen von https de wikipedia org w index php title Festkommazahl amp oldid 233842881