Theorie
 
 
 
 
 
Computertechnik

 
 
 
 

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.




www..de