|
|
|
|
|
|
|
|
|
Zahlen beschreiben elektrische Signale |
||
|
.. Fliesskommazahlen |
||
|
|
||
|
|
Die
bisher beschriebene Dualarithmetik bezog sich ausschließlich
auf Ganze Zahlen. Nun scheinen zumindest die ®Intel
Prozessoren auch reelle Zahlen, also Fließkommazahlen
bearbeiten zu können. Das ist nur teilweise richtig, denn
seit dem Prozessor 80486 besteht jede CPU aus einem
Integerprozessor und einem Fließkommaprozessor. Letzterer
beherrscht den Umgang mit Fließkommazahlen. Den
Prozessoren vor der 80486 CPU musste dieser Prozessor auf dem
Mainboard hinzugefügt werden. So steckte neben der 80386
CPU ein 80387 Fließkomma -Koprozessor auf dem Board, wenn
der Besitzer den doch erheblichen Preis für diesen
aufgebracht hatte.
War dies nicht der Fall, so musste die Fließkommarechnung durch ein Programm emuliert werden. Die Entwicklungsumgebungen brachten einen Software-Fließkomma-Koprozessor mit und berechneten mit ihm die Fließkaommaarithmetik auf dem Integerprozessor. Das ging zwar langsamer als mit einem Hardwareprozessor und das Programm benötigten einigen Speicherplatz, kostete aber wesentlich weniger Geld. Auch heute ist das zuletzt geschilderte Verfahren noch nicht überwunden. Viele Einchipcomputer verfügen nicht über einen Fließkomma-Koprozessor und so ist es angenehm, wenn die Entwicklungsumgebung eine Softwareemulation mitbringt. Ist dies nicht der Fall, so hat der Entwickler ein Problem, denn die Entwicklung eines eigenen Programms zur Fließkommaemulation ist mit viel mathematischem 'Wissen' und einiger Arbeit verbunden. Genauere Hinweise liefert der IEEE 754 Standard, der die Ablage von Fließkommazahlen in einfacher und doppelter Genauigkeit beschreibt, und deren Aufteilung in Mantisse, Exponent und Vorzeichen über 4 bzw. 8Bytes. |
|
|
|
|
|
|
|
Fliesskommazahlen
bei Einchipcomputerm
Ist
ein Einchipcomputer nicht in der Lage Fließkommaberechnungen
durchzuführen, so sollte dies bei ® Intel Prozessoren
dem Compiler in seinen Voreinstellungen mitgeteilt werden.
Dieser wird bei Aktivierung der Fließkommaoption, dem
Programm einen softwareemulierten 80x87 Koprozessor befügen,
was den Quellcode des Programms um etwa 8kByte vergrössert.
Wegen dieses Speicherbedarfs sollte man die Fließkommaoption
deaktivieren, wenn in dem eigenen Programm keine
Fließkommaberechnungen vorkommen. Der Koprozessor wird
immer dann benötigt, wenn in einem C-Programm
Speicherzellen des Typs float oder double deklariert wurden.
Compiler für die CPUs anderer Prozessoren bringen häufig ähnliche Mechanismen mit. Ist kein Fließkommapaket verfügbar, so muss man den Hersteller des Prozessors befragen oder sich ein eigenes Fließkommaprogramm schreiben. |
|
|
|
|
|
|
|
|
|
|
|
Algorithmus zur
Bestimmung der 2. Wurzel einer Zahl
Auch
wenn der nachfolgende Rechenalgorithmus nur bedingt zum Thema
Fließkommazahlen passt, soll er hier notiert sein. Die
Frage nämlich, wie man mit einem Integerprozessor Wurzeln
zur Basis 2 berechnen kann, führt zu einer verblüffenden
Lösungsstrategie. Als Beispiel sei die Wurzel aus 25 zu
ziehen. Dies gelingt wie folgt ..
Von der zur Rede stehenden Zahl (hier 25) wird 1 abgezogen und von den hernach entstehenden Resten in aufsteigender Folge die auf 1 folgenden ungeraden Zahlen 3, 5, 7 usw., bis sich der letzte Rest aufhebt, oder kleiner wird als die nächste ungerade Zahl, die abgezogen werden soll. Zählt man die Anzahl der vollzogenen Berechnungsschritte, erhält man das Ergebnis. Im Fall von (Wurzel aus 25) = 5 (s.unten) Wurzel aus 25 => ---------------- 25 1 = 24 (zähle 1) 24 3 = 21 (zähle 2) 21 5 = 16 (zähle 3) 16 7 = 9 (zähle 4) 9 9 = 0 (zähle 5) => Ergebnis ist 5 Da Computer derartige Schleifen sehr schnell berechnen, dürften sie normalerweise schneller fertig sein als ein Menschen. Den Algorithmus kann man auch auf 'Nachkommastellen' erweitern. |
|
|
|
|
|
.de