Technische Grundlagen der Informatik

Werbung
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
___________________________________________________________________________________________________________
2.0 Zahlendarstellung, Konvertierungsalgorithmen und
arithmetische Algorithmen
Ziele dieses Kapitels
☺Kennenlernen wesentlicher Zahlensysteme und die Konvertierung von
Zahlen zwischen unterschiedlichen Zahlensystemen
☺Repräsentation von positiven und negativen Zahlen in einem Computer
☺Addition und Subtraktion im dualen ( binären ) Zahlensystem
☺Erfassen von rationalen Zahlen mit der Festkomma- und
Gleitkommadarstellung
☺Kennenlernen der IEEE-754-Gleitkommaformate und des Extendedprecision-Formats von Intel
Seite 2 - 0
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
2.1 Zahlensysteme und Konvertierungsalgorithmen
Informationen können in unterschiedlicher Art vorliegen. In unserer
natürlichen Umgebung liegen Informationen häufig als analoge Werte, als
analoge Signale bezeichnet, vor, z. B. die Temperatur in Abhängigkeit von
der Zeit. Hierbei sind sowohl der Temperaturwert als auch der Zeitwert
kontinuierlich, wie in Abbildung 2.1 dargestellt ist. Digitale Rechner, und
das sind heutzutage nahezu alle Rechner, arbeiten dagegen mit digitalen
Signalen. Diese Signale sind sowohl im Wert als auch in der Zeit diskret,
wie ebenfalls in Abbildung 2.1 dargestellt ist. Damit Informationen aus
analogen Signalen mit digitalen Rechnern verarbeitet werden können,
müssen diese also zuerst digitalisiert werden. Dies erfolgt technisch in
einem Analog- zu Digital-Konverter ( ADC ). Das Ergebnis einer solchen
Konvertierung ist in Abbildung 2.1 dargestellt. Mit einem digitalen
Rechner können diese Daten dann digital verarbeitet, z. B. gefiltert
werden. Eventuell ist dann auch noch eine Rückwandlung vom digitalen
Signal in ein analoges Signal, in einem Digital- zu Analog-Konverter, wie
ebenfalls in Abbildung 2.1 gezeigt, möglich.
Ein anderes Beispiel, wo zunächst analoge Informationen vorliegen, ist ein
Foto auf Fotopapier. Wenn dieses dann eingescannt wird, liegen die
Bildinformationen digital vor. Das analoge Foto wurde digitalisiert d. h. es
liegt dann ein digitales Bild vor. Auch eine digitale Kamera wandelt
analoge Bilder unserer Umgebung in digitale Bilder um, und speichert
diese.
Damit also Informationen in einem digitalen Rechner verarbeitet werden
können, müssen sie in eine Form gebracht werden, die der Rechner
verarbeiten kann, d.h. sie müssen binär, mit 0 und 1, codiert werden. Ein
üblicher digitaler Rechner arbeitet nämlich mit Spannungspegeln, die 0
entspricht dabei einem niedrigen Spannungspegel L ( Low ), und die 1
entspricht dabei einem hohen Spannungspegel H ( High ). Da Zahlen bei
der Erfassung von Informationen eine wichtige Rolle spielen, sind diese
entsprechend zu kodieren. Zahlensysteme bei denen nur zwei verschiedene
Ziffern, hier z. B. 0 und 1 benutzt werden, heißen Dualsystem ( vom
lateinischen dualis = zwei enthaltend ) manchmal auch Zweier- oder
Binärsystem genannt. Das gebräuchlichste Zahlensystem im Alltag ist das
Dezimalsystem.
Seite 2 - 1
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Abbildung 2.1: Darstellung verschiedener Signaltypen anhand eines zeitlichen
Temperaturverlaufes
Seite 2 - 2
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Hier werden zehn unterschiedliche Ziffern, 0 bis 9 ( dezi = zehn )
verwendet um Zahlen darzustellen. In der Technik sind auch noch das
Oktal- ( acht ) und Hexadezimal- ( sechszehn ) System im Gebrauch, weil
sie eine besonders einfache Konvertierung ins Dualsystem erlauben.
Bei all diesen Zahlensystemen spielt für die Wertermittlung einer Zahl
nicht nur die verwendete Ziffer sondern auch deren absolute Position eine
Rolle. Daher handelt es sich bei diesen Zahlensystemen um
Stellenwertsysteme, kurz auch Stellensysteme genannt. Der Wert einer
Dezimalzahl mit den Ziffern an-1,….a0 mit 0 ≤ a i < b = 10 wird z. B. auf
folgende Art berechnet.
Beim Dezimalsystem handelt es sich um ein spezielles Stellenwertsystem
zur Basis b = 10. Diese Basis lässt sich durch eine beliebige natürliche
Zahl b ersetzen, so dass sich Stellenwertsysteme zu unterschiedlichen
Basen ergeben. Allgemein lässt sich für eine Zahl zur Basis b schreiben
mit 0 ≤ ai < b.
Diese Darstellung wird auch als b-adische Darstellung von Zahlen
bezeichnet. Neben dem uns vertrauten Dezimalsystem sind für die
Technische Informatik folgende drei Zahlensysteme noch von Bedeutung:
Binär- oder Dualsystem
Im Binärsystem werden die beiden Ziffern 0 und 1 für die
Zahlendarstellung verwendet. Daher handelt es sich um ein
Stellenwertsystem zur Basis b = 2. Intern arbeiten moderne Rechner
nahezu ausnahmslos mit dem Binärsystem, so dass dieses für die
Technische Informatik am wichtigsten ist.
Seite 2 - 3
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Oktalsystem
Dem Oktalsystem liegt die Basis b = 8 zu Grunde. Zur Darstellung werden
die Ziffern 0 bis 7 verwendet. Da sich die Basis b = 8 als eine
Zweierpotenz b = 23 darstellen lässt, kann eine einzige Oktalziffer exakt
mit drei Bits der Binärdarstellung dargestellt werden.
Beispiel:
Hexadezimalsystem
Im Hexadezimalsystem werden alle Zahlen zur Basis b = 16 dargestellt.
Zur Darstellung werden die Ziffern 0 bis 9 und die Buchstaben A bis F
verwendet. Da die Basis b = 16 = 24 ist, repräsentiert jede
Hexadezimalziffer exakt 4 Bits in der Binärdarstellung:
Beispiel:
Zur Angabe der Basis einer Ziffernfolge wird die Suffix-Notation
verwendet, d. h. die Basis des zu Grunde liegenden Zahlensystems wird
der Ziffernfolge als Ergänzung angehängt.
Beispiele:
Die b-adische Zahlendarstellung lässt sich auch auf Rationale Zahlen, d.h.
auf Zahlen mit Nachkommaanteil anwenden. Dabei werden die Stellen der
Ziffern nach dem Komma mit negativem Exponenten versehen. Die
Ziffernfolge ( an-1,…a0, a-1,….a-m )b repräsentiert dann die folgende Zahl:
Seite 2 - 4
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Konvertierung zwischen Zahlensystemen
Es sei z eine beliebige positive Kommazahl und b sei eine beliebige Basis.
Um z bezüglich b aus zu drücken müssen wir diese Zahl in die Form
bringen. Diese Gleichung separieren wir zunächst in einen Vorkommaund einen Nachkommanteil.
Für beide Formelanteile sind nun die Koeffizienten a0 , ….an-1 bzw. a-m,
…a-1 zu ermitteln. Zur Ermittlung der Koeffizienten a0 , ….an-1 teilen wir
den Vorkommateil zV durch die Basis b.
Als Rest ergibt sich der gesuchte Koeffizient a0. Mit Rest ist dabei der
Anteil der ursprünglichen Zahl zV gemeint, der sich nicht mehr ganzzahlig
durch b teilen lässt. Bei der Division ergibt sich nämlich als Quotient a0/b.
Da aber generell ai < b ist, folgt dass dieser Quotient kleiner als 1, also
keine ganze Zahl mehr ist, und a0 somit als ein ganzzahliger Rest auf zu
fassen ist. Der erhaltene Algorithmus zur Konvertierung des
Vorkommaanteils und ein Beispiel ist nachfolgend graphisch dargestellt.
Seite 2 - 5
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Zur Ermittlung der Koeffizienten a-1,…a-m des Nachkommaanteils ist
dieser mit der Basis b zu multiplizieren.
a-1 ist also die Differenz zwischen dem Produkt zn •b und der Summe des
Summenausdrucks auf der rechten Seite der Gleichung. Diese Summe ist
kleiner als 1, d.h. a-1 gibt den Vorkommaanteil des erhaltenen Produktes
an. Zum Erhalt der weiteren Koeffizienten wird das Verfahren mit der
erhaltenen Summe fortgesetzt bis die Summe null wird. Der erhaltene
Algorithmus zur Konvertierung des Nachkommaanteils einer Zahl und ein
Beispiel dazu ist nachfolgend graphisch dargestellt.
Bei der Konvertierung von einem Zahlensystem in ein anderes ist Vorsicht
geboten, denn nicht alle Zahlen lassen sich in allen Zahlensystemen mit
einer endlichen Ziffernfolge darstellen.
Beispiel: Umwandlung der Dezimalzahl 0,1 ins Binärsystem
Ergebnis: ( 0,1 )10 = ( 0,0001100110011…)2
d. h. für die Dezimalzahl 0,1 ergibt sich im
Binärsystem eine unendlich periodische Darstellung.
In der Praxis führt dies zu Rundungsfehlern, die unter Umständen
gravierende Auswirkungen haben können.
Seite 2 - 6
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
2.2 Rechnerinterne Zahlenformate und Addier- und
Subtrahieralgorithmen
Nahezu alle heute eingesetzten Computer arbeiten intern mit dem binären
Zahlensystem. Positive Zahlen können einfach dadurch repräsentiert und
gespeichert werden, indem jede Ziffer 0 oder 1 rechnerintern durch ein
sogenanntes Bit dargestellt wird. Dabei werden 8 Bit zu einem Byte
zusammengefasst. Aus der Anzahl der Bytes, in der Regel eine
Zweierpotenz 2n ( n = positive ganze Zahl ), ergibt sich dann der
Zahlenbereich, den ein Computer darstellen kann. In der nachfolgenden
Graphik sind einige Bitbreiten und der dazugehörige Wertebereich, den sie
abdecken, dargestellt.
Seite 2 - 7
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Die Speicherordnung innerhalb von Computern legt fest in welcher
Reihenfolge die Bytes einer Zahl abgespeichert werden. Danach lassen
sich moderne Mikroprozessoren in zwei Klassen einteilen. Erfolgt die
Speicherung derart, dass mit dem niederwertigsten Byte begonnen wird,
dann spricht man von einer Little- Endian-Architektur. Wird dagegen bei
der Speicherung mit dem höherwertigsten Byte begonnen, so spricht man
von einer Big-Endian-Architektur.
Abbildung 2.2: Vergleich der Byte-Anordnung bei der Little- Endian und BigEndian Architektur von Mikroprozessoren
Während sich die Repräsentation und Speicherung von ganzen, positiven
Zahlen einfach gestaltet, ist die rechnerinterne Repräsentation von
negativen Zahlen komplizierter. Dazu werden häufig drei unterschiedliche
Zahlenformate, nämlich
1.) die Vorzeichenbitdarstellung
2.) die Einerkomplementdarstellung
3.) die Zweierkomplementdarstellung
verwendet.
Diese drei Zahlenformate sind hinsichtlich dreier Gesichtspunkte zu
untersuchen, die für einen Computer sehr wichtig sind.
Seite 2 - 8
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
1.) Das Verhalten bei arithmetischen Operationen
Die Durchführung von arithmetischen Operationen gehört zu den
Hauptaktivitäten eines Computers. Daher sollten Zahlenformate
gewählt werden, die hinsichtlich arithmetischer Operationen am
wenigsten Rechenaufwand haben.
2.) Die Eineindeutigkeit
Ein Zahlenformat ist eineindeutig, wenn jede Zahl genau einem
Bitmuster und umgekehrt jedes Bitmuster einer Zahl entspricht. Bei
eineindeutigen Zahlenformaten sind Gleichheitstests einfach durch zu
führen. Zudem nutzen diese Zahlenformate die Anzahl der möglichen
Bitmuster optimal aus, da sie nicht redundant sind, d. h. eine Zahl weißt
keine zwei unterschiedlichen Darstellungen auf.
3.) Die Symmetrie der Zahlenformate
Zahlenformate heißen symmetrisch, wenn mit der Zahl z stets auch die
Zahl –z dargestellt werden kann.
Vorzeichenbitdarstellung von negativen Zahlen
Negative Zahlen lassen sich einfach darstellen, wenn ein zusätzliches
Vorzeichenbit eingeführt wird, das der eigentlichen Zahl vorangestellt
wird. Ist dieses Bit 0 so handelt es sich um eine positive Zahl, ist dieses Bit
1 dann liegt eine negative Zahl vor. Zahlendarstellungen lassen sich
graphisch am sogenannten Zahlenstrahl darstellen. Auf der horizontalen
Achse wird dabei das binäre Bitmuster nach aufsteigendem Wert geordnet
aufgetragen. Auf der vertikalen Achse wird der Wert der dazugehörigen
Zahl aufgetragen. Der Zahlenstrahl für Bitcodierungen mit 4 Bit
einschließlich Vorzeichenbit ist in Abbildung 2.3 dargestellt.
Aus der Darstellung des Zahlenstrahls ist zu entnehmen, dass die
Zahlendarstellung symmetrisch ist. Jedoch ist sie nicht eineindeutig, da die
Null zwei Codierungswerte besitzt.
+0 = 000…000 ; -0 = 100…000
Leider erhält man mit dieser Zahlendarstellung bei arithmetischen
Operationen falsche Ergebnisse, wenn das Vorzeichenbit wie ein normales
Bit behandelt wird. Die binäre Addition wird im Prinzip genau so
durchgeführt wie im dezimalen Zahlensystem. Da nur zwei
unterschiedliche Ziffern vorliegen ist sie sogar noch einfacher.
Seite 2 - 9
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Abbildung 2.3: Darstellung des
Zahlenstrahls für 4 Bitzahlen mit
Vorzeichencodierung
Die binäre Addition zweier Zahlen erfolgt so wie in nachfolgender Tabelle
mit Beispiel dargestellt.
Die Addition startet mit der niederwertigsten Stelle, also hier rechts. Ergibt
sich bei dieser Stelle ein Übertrag, so ist dieser bei der
nächsthöherwertigen Stelle dazu zu zählen. Dieses Verfahren ist fort zu
führen bis alle Stellen aufaddiert sind.
Wendet man diese Vorgehensweise an um Zahlen mit Vorzeichenbits zu
addieren, und behandelt die Vorzeichenbits wie normale Bits, so erhält
man falsche Ergebnisse wie nachfolgende Beispiele zeigen.
Seite 2 - 10
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Um richtige Ergebnisse zu erhalten, muss das Vorzeichenbit explizit
interpretiert werden, und dann muss ein negativer Zahlenwert, nach den
Subtraktionsregeln, subtrahiert werden, wie in nachfolgendem Beispiel
dargestellt.
Im Prinzip ist dabei genau so vor zu gehen wie im dezimalen
Zahlensystem. Ergibt sich an einer Stelle ein negativer Wert, so ist an
dieser Stelle der Bitwert der nächsthöheren Stelle zu „leihen“. Bei der
Subtraktion an der nächsten Stelle ist dieser Wert dann ab zu ziehen, da er
ja bereits an der niederwertigen Bitposition verrechnet wurde.
Einerkomplementdarstellung von negativen Zahlen
Eine andere Möglichkeit negative Zahlen dar zu stellen, besteht darin eine
Zahl z zu negieren indem das Bitmuster der Zahl vollständig invertiert
wird.
Seite 2 - 11
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Nachfolgend ist der entsprechende Zahlenstrahl für einen Zahlenbereich
von 4 Bit dargestellt.
Abbildung 2.4: Darstellung des
Zahlenstrahls für 4 Bit Zahlen in der
Einerkomplimentdarstellung
Das erhaltene Zahlenformat ist symmetrisch. Aber auch bei dieser
Darstellung existiert das Problem der Doppelbelegung der Null.
+0 = 000…000 ; -0 = 111…111
Jedoch gestaltet sich die Addition von positiven und negativen Zahlen wie
üblich, wenn man zusätzlich die Übertragsadditionsregel anwendet. Im
einzelnen ist bei der Addition in drei Schritten vor zu gehen.
1.) Ausführen der gewöhnlichen Binäraddition
2.) Aufaddieren des Übertrags ( Übertragsadditionsregel )
3.) Streichen verbleibender Überträge
Seite 2 - 12
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
____________________________________________________________________________
Prof. Dr. R. Latz
__________________________
Die Übertragsadditionsregel ist dabei deshalb notwendig, weil die Zahl
Null eine Doppeldarstellung besitzt. Wie der nachfolgenden
Zahlenstrahldarstellung zu entnehmen ist, besitzt der Zahlenstrahl, wenn
man ihn periodisch erweitert, beim Übergang von den negativen zu den
positiven Zahlen, wegen der Doppeldarstellung der Null, einen Versatz.
Wird nun zu einer negativen Zahl eine positive Zahl dazugezählt so ergibt
sich, bei einem positiven Ergebnis, eine Zahl, die um eins zu niedrig ist.
Daher muss dann eine 1 dazugezählt werden.
Zweierkomplementdarstellung
Die Zweierkomplementdarstellung ergibt sich aus der Einerkomplementdarstellung dadurch, dass zunächst das Einerkomplement gebildet wird,
und dann noch eine 1 dazugezählt wird. Eine andere formal einfache
Möglichkeit das Zweierkomplement zu bilden besteht darin, das Bitmuster
vom niederwertigen Ende aus bis zur ersten 1 bei zu behalten und die
restlichen Bits zu invertieren. Wie sich aus der nachfolgenden
Zahlenstrahldarstellung ergibt, ist dieses Zahlenformat eineindeutig. Die
Null besitzt nur noch eine Darstellung. Dadurch entfällt auch die
Übertragsadditionsregel
der
Einerkomplementdarstellung.
Der
Zahlenstrahldarstellung ist auch zu entnehmen, dass dieses Zahlenformat
nicht mehr symmetrisch ist. Die Codierung der „negativen“ Null bei der
Einerkomplementdarstellung wird dazu verwendet um -1 zu codieren. Im
negativen Bereich gibt es daher eine Zahl mehr als im positiven Bereich.
Seite 2 - 13
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Abbildung 2.5: Darstellung des
Zahlenstrahls für 4 Bit Zahlen in
der Zweierkomplementdarstellung
Der Zahlenbereich einer n Bit breiten Dualzahl liegt damit zwischen
– 2n-1 bis + 2n-1 - 1.
In der Zweierkomplementdarstellung können vorzeichenbehaftete Zahlen,
wie der nachfolgenden Darstellung des erweiterten Zahlenstrahls zu
entnehmen ist, nach den üblichen Regeln der Binärarithmetik addiert
werden. Die Subtraktion lässt sich dabei auf die Addition negativer Zahlen
zurückführen. Kommt es bei der Addition zu einem Übertrag, der aus dem
Zahlenbereich hinausführt, so wird dieser ersatzlos gestrichen.
Da der Zahlenstrahl beim Übergang vom negativen in den positiven
Bereich „durchgängig“ ist muss keine 1 addiert werden.
Seite 2 - 14
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Beispiele zur Addition im Zweierkomplement:
Nachfolgend soll nochmals plausibel gemacht werden, wieso das
Zweierkompliment zur Darstellung negativer Zahlen geeignet ist.
Addiert man zu einer Dualzahl A ihr Zweierkompliment, so ergibt ich ohne
Übertrag:
Diese Erkenntnis kann dazu genutzt werden um die Subtraktion bei
Dualzahlen auf die Addition zurückzuführen.
Allgemein gilt somit für die Addition zweier Dualzahlen bei Verwendung
der Zweierkomplimentdarstellung der negativen Zahlen, hier n = 4:
Seite 2 - 15
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Bei arithmetischen Operationen kann das Ergebnis den darstellbaren
Wertebereich überschreiten. Das Ergebnis ist dann eine nicht korrekte
Zahl, die außerhalb der Bereichsgrenzen liegt, es entsteht ein sogenannter
Überlauf oder Overflow, der von der ausführenden Hardware angezeigt
werden muss.
Je nach dem Wert der Überträge Ü4 und Ü3 bzw. Ün und Ün-1 ergibt sich
eine Bereichsüberschreitung. Es sind zwei Fälle zu unterscheiden:
1.) Bei vorzeichenlosen Zahlen liegt eine Bereichsüberschreitung vor,
wenn Ün = 1 ist.
2.) Bei vorzeichenbehafteten Zahlen liegt eine Bereichsüberschreitung
vor, wenn entweder Ün oder Ün-1 den Wert 1 annehmen, also:
Bereichsüberschreitung = ( Ün xor Ün-1 ).
Bereichsüberschreitungen lassen sich, neben dem Zahlenstrahl auch gut im
Zahlenkreis verdeutlichen, wie in nachfolgender Abbildung 2.6 dargestellt
ist.
Abbildung 2.6: Darstellung der Bereichsgrenzen im Zahlenkreis für 4-stellige
Dualzahlen bei Verwendung der
Zweierkomplimentdarstellung für die
negativen Zahlen
Seite 2 - 16
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
__________________________________________________________________________________________________________
Festkommazahlen
Mit der Festkommadarstellung können rationale Zahlen einfach erfasst
werden. Genau wie bei der Vorzeichenbitdarstellung wird ein
Vorzeichenbit Vz eingeführt um zu beschreiben, ob eine Zahl negativ, Vz
= 1, oder positiv, Vz = 0, ist. Die restlichen Bits, Mantisse M, genannt,
werden dazu verwendet, um die Nachkommastellen der darzustellenden
Zahl zu codieren. Also besitzt das Festkommaformat für eine n = 16 Bit
breite Zahl folgende Form:
Der Wert einer n Bit breiten Festkommazahl lässt sich dann wie folgt
berechnen:
Dieses Format erlaubt die Repräsentation von Zahlen aus dem offenen
Intervall ] -1, + 1 [ . Liegt ein größerer Zahlenbereich vor, so ist dieser
entsprechend auf dieses Intervall ab zu bilden indem alle Zahlen durch die
größte vorliegende Zahl dividiert werden.
Das Zahlenintervall ] -1, + 1 [ besitzt die Eigenschaft bezüglich der
Multiplikation abgeschlossen zu sein, d. h. eine Multiplikation zweier
Zahlen führt nicht aus dem Zahlenbereich. Für die größte und kleinste
Zahl, die mit einer n Bit breiten Festkommazahl dargestellt werden kann
gilt:
zmax = 0111…111 = 1- 2-(n-1)
zmin = 1111…111 = -1 + 2-(n-1)
Der darstellbare Zahlenbereich ist symmetrisch, so dass zmin = - zmax gilt.
Für den Abstand zweier benachbarter Zahlen z1 und z2 gilt: z2 – z1 = 2-(n-1) .
Dieser Abstand ist im gesamten Zahlenbereich konstant. Das
Festkommaformat gehört daher in die Klasse der äquidistanten
Zahlenformate. Dieses Zahlenformat kommt daher bei Berechnungen zum
Einsatz, wo im gesamten Zahlenbereich eine gleichbleibende Genauigkeit
Seite 2 - 17
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
__________________________________________________________________________________________________________
notwendig ist. Dies ist z. B. bei vielen digitalen Signalprozessoren (DSP´s)
der Fall. Die meisten anderen Prozessoren verwenden die
Gleitkommaarithmetik, dessen Zahlenformat im folgenden behandelt wird.
Gleitkommazahlen
Bei der Gleitkommadarstellung wird die Festkommadarstellung um einen
Exponenten E erweitert. Beträgt die Bitbreite der Mantisse m, so berechnet
sich der Wert einer Gleitkommazahl folgendermaßen:
Mit Hilfe des Exponenten kann man das Komma der dargestellten Zahl
„gleiten“ lassen, d.h. es kann verschoben werden. Daher resultiert der
Name dieses Formates. Im Allgemeinen ergibt sich bei der Multiplikation
mit dem Term 2E eine Verschiebung des Kommas um E Stellen, wenn E>
0 nach rechts, und wenn E < 0 nach links. Bei Dualzahlen bewirkt die
Verschiebung des Kommas um eine Stelle nach rechts eine Multiplikation
mit dem Faktor 2. Gleitkommazahlen werden in Anlehnung an die
englische Bezeichnung „floating point numbers“ im Deutschen auch
Gleitkommazahlen oder Fließkommazahlen genannt. Während die
Mantisse die Auflösungsgenauigkeit des Zahlenformats festlegt,
beeinflusst der Exponent vor Allem die Intervallgrenzen und bestimmt
damit hauptsächlich die kleinste und größte darstellbare Zahl. Für
Gleitkommaformate hat sich die Abkürzung sXeY durchgesetzt, s steht
dabei für das Vorzeichenbit, X für die Bitbreite der Mantisse m, und Y für
die Bitbreite des Exponenten e. Im nachfolgenden ist das Format s10e5
dargestellt.
Seite 2 - 18
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
__________________________________________________________________________________________________________
Um der Vorzeichenproblematik beim Exponenten zu entgehen wird nicht
der Exponent direkt binär codiert, sondern es wird die sogenannte
Charakteristik C Codiert und gespeichert. Um die Charakteristik C zu
erhalten, wird der Wertebereich des Exponenten durch die Addition einer
Konstanten k in den positiven Wertebereich verschoben, wie in
nachfolgender Abbildung graphisch dargestellt ist.
Das Bitmuster der Charakteristik ist damit eine vorzeichenlose Dualzahl
und der wahre Wert des Exponenten kann jederzeit durch Subtraktion der
Konstanten k zurückerhalten werden. Im Beispielformat s10e5 können mit
5 Bit des Exponenten 32 verschiedene Werte des Exponenten dargestellt
werden. Wählt man [ -15 ; 16 ] als Wertebereich für den Exponenten, so
berechnet sich die Charakteristik als C = E + 15, mit k = 15. Nachfolgend
sind Beispiele für die Zahl 0,001101 aufgeführt.
Seite 2 - 19
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
__________________________________________________________________________________________________________
Wie man diesen Beispielen entnehmen kann, ist dieses Zahlenformat nicht
eineindeutig. Die Zahlen können trotz unterschiedlicher Bitmuster gleich
sein. Um dies zu vermeiden wird die Position des Kommas mit Hilfe einer
entsprechenden Normalisierungsregel eindeutig festgelegt. Die folgenden
beiden Normalisierungsregel kommen zum Einsatz:
1.) Nachkommanormalisierung
Die erste Nachkommastelle enthält die höchste Ziffer ungleich null,
im Dualsystem also die 1.
2.) Vorkommanormalisierung
Die erste Vorkommastelle enthält die höchste Ziffer ungleich null,
also im Dualsystem 1.
Im Falle der Vorkommanormalisierung ist das erste Bit Mm-1 der Mantisse
eine Vorkommastelle, so dass sich nun die dargestellte Zahl wie folgt
berechnet:
Da das erste Bit der Mantisse bei einer Normalisierung stets 1 ist, können
wir auf die Speicherung dieses Bits verzichten und haben daher Platz für
ein zusätzliches Wertebit, das die Auflösungsgenauigkeit des
Zahlenformats erhöht. Bei solchen Zahlenformaten spricht man von
gepackten oder impliziten Darstellungen. Damit ergeben sich insgesamt
vier normalisierte Darstellungen für Gleitkommazahlen für die in
Abbildung 2.7 jeweils ein Beispiel für die Zahl 0,001101 dargestellt ist.
Gepackte Zahlenformate haben jedoch trotz der mit ihnen erreichbaren
höheren Auflösungsgenauigkeit einen Nachteil. Durch die implizite 1 an
der ersten Vor- oder Nachkommastelle kann die Null nicht mehr direkt
dargestellt werden. Da jedoch die Zahl Null bei Berechnungen unerlässlich
ist, muss ein besonderes Bitmuster für die Null reserviert werden. Dies ist
z. B. bei den IEEE-754-Gleitkommaformaten der Fall, die 1985 vom
Institute of Electrical and Electronics Engineers ( IEEE) standardisiert
wurden.
Seite 2 - 20
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
__________________________________________________________________________________________________________
Abbildung 2.7: Darstellung der vier Gleitkommaformate, die sich aus der
gepackten und ungepackten Mantissendarstellung und den beiden
Normierungsarten ergeben.
Die IEEE-754-Gleitkommaformate
Die Darstellung von Gleitkommazahlen in den IEEE-754Gleitkommaformaten wird nahezu in allen gängigen Mikroprozessoren
und auch in der Programmiersprache Java verwendet. In der
nachfolgenden Abbildung 2.8 sind die Definitionen der Gleitkommaformate für einfache und doppelte Genauigkeit der IEEE-Norm 754
dargestellt. Diese Formate wenden meist die Vorkommanormalisierung an,
d. h. das erste 1-Bit befindet sich stets vor dem Komma. Die Mantisse wird
gepackt abgelegt, so dass das erste gespeicherte Mantissen-Bit nicht der
Vorkomma-Eins, sondern der ersten Nachkommastelle entspricht. Eine
denormalisierte Darstellung ist jedoch auch möglich. In diesen Formaten
liegen reservierte Bitmuster vor, wenn entweder alle Charakteristik-Bits
gleich 0 oder gleich 1 sind. Beide Fälle werden nachfolgend diskutiert.
Seite 2 - 21
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
____________________________________________________________________________________________________________
Abbildung 2.8: Darstellung der Definition der IEEE-754-Gleitkommaformate
für einfache ( single-precision) und doppelte ( double-precision ) Genauigkeit.
Die Spezialfälle dieser Zahlenformate werden nachfolgend diskutiert.
1.) Alle Bits der Charakteristik sind 0
In diesem Fall wird das Bitmuster der Mantisse als eine spezielle
Gleitkommazahl interpretiert. Das Zahlenformat ist dann weder
normalisiert noch gepackt. Die Null lässt sich dann darstellen indem
alle Bits der Mantisse auf 0 gesetzt werden.
2.) Alle Bits der Charakteristik sind 1
Sind gleichzeitig alle Bits der Mantisse 0, so wird abhängig vom
Vorzeichen + Unendlich bzw. –Unendlich dargestellt. Dieses Bit
muster entsteht z. B. wenn durch null dividiert wird oder zwei Zahlen
addiert werden deren Summe außerhalb des gültigen Wertebereiches
liegt. Nicht definierte und unbekannte Werte werden dargestellt
indem zusätzlich in der Mantisse wenigstens 1 Bit ungleich 0 ist.
Dies ist z. B. bei algebraisch undefinierten Operationen wie 0/0, 0•∞,
√-1 usw. der Fall.
Je ein Beispiel für eine normalisierte und eine denormalisierte Darstellung
einer Gleitkommazahl nach der IEEE-754-Norm ist für einfache
Genauigkeit in der Abbildung 2.9 dargestellt. Im Normalfall sind sowohl
in der Charakteristik als auch der Mantisse Einsen und Nullen enthalten, so
dass eine normalisierte Darstellung vorliegt.
Seite 2 - 22
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
__________________________________________________________________________________________________________
Abbildung 2.9: Darstellung von je einem Beispiel für eine normalisierte und
eine denormalisierte Gleitkommazahldarstellung. Bei der denormalisierten
Darstellung ist die Charakteristik gleich null.
Darstellung von Gleitkommazahlen im Intel-Format
Intel Prozessoren unterstützen nach Außen das IEEE-754-Format. Intern
arbeiten sie jedoch nach dem Intel-Format mit einer wesentlich höheren
Genauigkeit. Dieses Format ist in Abbildung 2.10 dargestellt.
Abbildung 2.10: Darstellung des Extended-precision-Formats von Intel
Seite 2 - 23
© R. Latz
„Technische Grundlagen der Informatik (TGI)“
Prof. Dr. R. Latz
___________________________________________________________________________________________________________
Bei dem Intel-Format ist die Bitbreite auf 80 Bit erweitert. Das Format für
den Normalfall ist ungepackt und vorkommanormalisiert, d.h. das M63 –Bit
der 64 Bit breiten Mantisse ist 1. Wird ein Operand in eine
Gleitkommaeinheit geladen, z. B. einen Multiplizierer, so werden die
IEEE-754-Bitmuster in das Intel-Format umgesetzt. Sämtliche
arithmetische Operationen werden in diesem erweiterten Format
durchgeführt. Ein Ergebnis wird dann in das IEEE-Format
zurückkonvertiert. Bei dieser Vorgehensweise werden Rundungsfehler
vernachlässigbar klein gehalten.
Seite 2 - 24
© R. Latz
Herunterladen