Kapitel 5: Darstellung von Daten im Rechner Kapitel 5 Darstellung von Daten im Rechner und Rechnerarithmetik Literatur: Oberschelp/Vossen, Kapitel 5 Kapitel 5: Darstellung von Daten im Rechner Seite 1 Kapitel 5: Darstellung von Daten im Rechner Inhaltsverzeichnis 5.1 Darstellung ganzer Zahlen 5.2 Darstellung reeller Zahlen 5.3 Rechnerarithmetik 5.4 Darstellung alphanumerischer Daten Kapitel 5: Darstellung von Daten im Rechner Seite 2 5.1 Darstellung ganzer Zahlen Die Wortlänge eines Rechners stellt eine obere Grenze für die Größe von Zahlen dar, die der Rechner verarbeiten kann. Mit 8 Bits lassen sich z.B. natürliche Zahlen zwischen 0 und 28-1 = 255 darstellen. Probleme: Diese Bereiche können überschritten werden, etwa durch die Addition (132+133). Eine Lösung wäre das Setzen eines Flags, dass der Bereich überschritten wurde. Was passiert bei der Subtraktion? Etwa bei (132-133). Wie werden negative Zahlen dargestellt? Kapitel 5: Darstellung von Daten im Rechner Seite 3 Vorzeichen/Betrags-Darstellung Eine Möglichkeit der Darstellung negativer Zahlen ist die so genannte Vorzeichen/Betrags-Darstellung: Man verwendet das erste Bit zur Darstellung des Vorzeichens: • 0 für eine positive, • 1 für eine negative Zahl. Mit den verbliebenen Bits wird die Zahl dargestellt. Beispiel Beispiel5.1: 5.1: Die DieZahl Zahl-19 -19wird wirdmit mit88Bits Bitsalso alsodargestellt dargestelltals: als: 1 0010011 - 19 Mit n Bits werden also nicht mehr die Zahlen von 0 bis 2n-1 dargestellt, sondern im Bereich von -2n-1+1 bis 2n-1-1. Kapitel 5: Darstellung von Daten im Rechner Seite 4 Nachteile der Vorzeichen/Betrag-Darstellung Diese Art der Darstellung ist zwar intuitiv, besitzt aber einige Nachteile: Es gibt zwei verschiedene Nullen: +0 (0000) und -0 (1000). Ein Rechner, der Zahlen bitweise vergleicht, wird sie nicht als gleichwertig ansehen. Das Rechnen mit dieser Zahlendarstellung ist schwierig, da sie sowohl ein Addierals auch ein Subtrahierwerk benötigt. Zusätzlich muss es eine Logik geben, die entscheidet, ob addiert oder subtrahiert werden muss. Es müssen vier Fälle unterschieden werden: Fall Operanden Auszuführende Operation 1 +x +y x+y Addition 2 -x -y -(x+y) Addition 3 +x -y mit |x| ≥ |y| x-y Subtraktion -x +y mit |y| ≥ |x| y-x Subtraktion +x -y mit |x| < |y| -(y-x) Subtraktion -x +y mit |y| < |x| -(x-y) Subtraktion 4 Kapitel 5: Darstellung von Daten im Rechner Seite 5 Komplementdarstellung ganzer Zahlen Führt man die Subtraktion auf die Addition zurück, braucht man kein Subtrahierwerk, sondern kann mit einem reinen Addierwerk auskommen. Dazu müssen die negativen Zahlen allerdings anders dargestellt werden, etwa mit dem Einer-Komplement: Definition Definition5.1: 5.1: n Sei Seixx==(x(xn-1,…, ,…,xx0))2 ∈∈BBneine einen-stellige n-stelligeDualzahl. Dualzahl. n-1 0 2 := (1 ⊕ x ,…, 1 ⊕ x ) heißt Einer-Komplement von x. KK1(x) 1(x) := (1 ⊕ xn-1 n-1,…, 1 ⊕ x00)22 heißt Einer-Komplement von x. KK2(x) (x):= :=(1 (1⊕⊕xxn-1,…, ,…,11⊕⊕xx0))2 +1 +1==KK1(x) (x)++11heißt heißtZweier-Komplement Zweier-Komplementvon vonx.x. 2 n-1 0 2 1 Das Einerkomplement einer Zahl x erhält man also durch bitweises Invertieren von x, das Zweierkomplement durch anschliessende zusätzliche Addition von 1. Kapitel 5: Darstellung von Daten im Rechner Seite 6 Komplementdarstellung - Beispiel Beispiel Beispiel5.2: 5.2: Sei Seixx==(10011110) (10011110)2..Dann Danngilt: gilt: 2 K1(x) = 01100001 K2(x) = 01100010 Wesentlich bei einer Komplement-Darstellung ist, dass sie stets auf eine vorgegebene Stellenzahl bezogen wird. Kapitel 5: Darstellung von Daten im Rechner Seite 7 Komplementdarstellung negativer Zahlen Kann ein Rechner n Bits in einem Register oder einer Speicherzelle ablegen, so sind N=2n verschiedene Bitmuster darstellbar. Da eine Komplementdarstellung speziell zur Darstellung negativer Zahlen verwendet wird, kann man generell von der folgenden Idee ausgehen: Eine positive Zahl x wird dargestellt durch Eine negative Zahl x wird dargestellt durch +x = x -x = N-1-x (in K1), -x = N-x (in K2). Beispiel Beispiel5.3: 5.3: 4 Sei Sein=4. n=4.Dann Danngilt: gilt:NN==224==16. 16. Dann Dannstimmt stimmtdie dieDarstellung Darstellungvon von-5 -5nach nachobiger obigerVereinbarung Vereinbarungmit mitder dervon von 16-5 16-5==11 11überein. überein. Die DieZweierkomplement-Darstellung Zweierkomplement-Darstellungvon von(-5) (-5)10 wird wirdwie wiefolgt folgtberechnet: berechnet: 10 (5) (5)1010==(0101) (0101)22 KK2(5) (5)==KK1(5)+1 (5)+1==(1010) (1010)2+1 +1==(1011) (1011)2 ==(11) (11)10 2 1 2 2 10 Das DasZweierkomplement Zweierkomplementeignet eignetsich sichalso alsozur zurDarstellung Darstellungnegativer negativerZahlen. Zahlen. Kapitel 5: Darstellung von Daten im Rechner Seite 8 Komplementdarstellungen Einer-Komplement: Umfasst den Wertebereich von -2n-1+1 bis 2n-1-1. Nachteil: es gibt zwei Darstellungen der Null. Kapitel 5: Darstellung von Daten im Rechner Zweier-Komplement: Umfasst den Wertebereich von -2n-1bis 2n-1-1. Vorteil: es gibt nur eine Darstellung der Null. Seite 9 Mehrdeutigkeit der Komplementdarstellungen Der Nachteil beider Komplementdarstellungen ist die Mehrdeutigkeit: (111)2 in K2 kann (-1)10 bedeuten, aber auch (+7)10. Lösung: Wie bei der Vorzeichen/Betrag-Darstellung gibt die erste Ziffer an, ob es sich um eine positive oder eine negative Zahl handelt. Positiv: führende Null Negativ: führende Eins (111)2 wird dann also als (-1)10 interpretiert, (0111)2 als (+7)10. D.h. es ist zu beachten, dass in einem Rechner stets eine bestimmte Wortlänge fest liegt, auf die sich das Komplement bezieht. Kapitel 5: Darstellung von Daten im Rechner Seite 10 Rechnen mit dem Einer-Komplement Beispiel Beispiel5.4: 5.4:(Subtraktion (Subtraktionim imEiner-Komplement) Einer-Komplement) Zur (b)). ZurSubtraktion Subtraktiona-b a-baddiert addiertman mandas dasKomplement Komplementvon vonbbzu zuaa(a+K (a+K11(b)). a=(00110100) a=(00110100)2=(52) =(52)10,,b=(01000110) b=(01000110)2 =(70) =(70)10 bei bein=8 n=8Bits. Bits. 2 10 2 10 Addition a b a+b + Subtraktion 0 0 1 1 0 1 0 0 a 0 1 0 0 0 1 1 0 K1(b) 0 1 1 1 1 0 1 0 a-b a+b=(122)10 Kapitel 5: Darstellung von Daten im Rechner + 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 a-b = (237)10 = (256 - 1 - 237)10 = (-18)10 Seite 11 Rechnen mit dem Einer-Komplement Beispiel Beispiel5.4: 5.4:(Subtraktion (Subtraktionim imEiner-Komplement) Einer-Komplement) Tritt Trittbei beider derSubtraktion Subtraktionein einÜbertrag Übertragauf, auf,wird wirddieser dieserwieder wiederzum zumErgebnis Ergebnis addiert: (00011001)==(25) (25)1010.. addiert:aa==(00110100) (00110100)==(52) (52)1010,,bb==(00011001) a 0 0 1 1 0 1 0 0 K1(b) + 1 1 1 0 0 1 1 0 a-b 1 0 0 0 1 1 0 1 0 Addition Additiondes desÜbertrags Übertragszur zurniedrigsten niedrigstenStelle Stelledes desErgebnisses: Ergebnisses: 0 0 0 1 1 0 1 + a-b 0 1 0 0 0 1 1 0 1 1 a-b=(27) a-b=(27)1010 Kapitel 5: Darstellung von Daten im Rechner Seite 12 Rechnen mit dem Zweier-Komplement Beispiel Beispiel5.5: 5.5:(Subtraktion (Subtraktionim imZweier-Komplement) Zweier-Komplement) Zur (b)). ZurSubtraktion Subtraktiona-b a-baddiert addiertman mandas dasKomplement Komplementvon vonbbzu zuaa(a+K (a+K22(b)). a=(00110100) a=(00110100)2=(52) =(52)10,,b=(01000110) b=(01000110)2 =(70) =(70)10 bei bein=8 n=8Bits. Bits. 2 10 2 10 Addition a b a+b + Subtraktion 0 0 1 1 0 1 0 0 a 0 1 0 0 0 1 1 0 K2(b) 0 1 1 1 1 0 1 0 a-b a+b=(122)10 Kapitel 5: Darstellung von Daten im Rechner + 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 a-b = (238)10 = (256 - 238)10 = (-18)10 Seite 13 Rechnen mit dem Zweier-Komplement Beispiel Beispiel5.5: 5.5:(Subtraktion (Subtraktionim imZweier-Komplement) Zweier-Komplement) Tritt Trittbei beider derSubtraktion Subtraktionein einÜbertrag Übertragauf, auf,wird wirddieser dieserignoriert: ignoriert: aa==(00110100) (00011001)==(25) (25)10.. (00110100)==(52) (52)10 ,,bb==(00011001) 10 10 a 0 0 1 1 0 1 0 0 K2(b) + 1 1 1 0 0 1 1 1 a-b 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 Ignorieren Ignorierendes desÜbertrags Übertragsliefert: liefert: a-b = 0 a-b=(27) a-b=(27)1010 Kapitel 5: Darstellung von Daten im Rechner Seite 14 Rechnen mit den Komplementen Bei Auftreten eines Übertrags bei einer Subtraktion wird dieser bei K1 zu der letzten Stelle hinzuaddiert, bei K2 ignoriert. Der Übertrag bedeutet, dass der Zahlenkreis (vgl. S. 9) einmal umrundet wurde. Bei K1 bedeutet dies, dass die Null doppelt subtrahiert wurde, eine davon muss rückgängig gemacht werden, daher die Addition des Übertrags. Bei K2 hat dies keine Konsequenzen, da es nur eine Null gibt. Das Ignorieren des Übertrages entspricht der Subtraktion von N. Kapitel 5: Darstellung von Daten im Rechner Seite 15 Subtraktion mit einem Addierwerk Durch die Komplement-Darstellungen ist die Verwendung eines Subtrahierwerkes unnötig. Durch das bitweise Invertieren (und eventueller Addition von 1) kann ein normales Addierwerk diese Aufgabe übernehmen. Ist das Ergebnis des Addierwerkes negativ, kann man den Betrag der Zahl wie folgt decodieren: Beim Einer-Komplement ist die Zahl einfach erneut zu komplementieren. Beim Zweier-Komplement ist die Zahl zu komplementieren und eine Eins zu addieren. Ist das Ergebnis des Addierwerkes positiv, kann man den Betrag direkt ablesen. Kapitel 5: Darstellung von Daten im Rechner Seite 16 Decodierung der Komplementdarstellungen Beispiel Beispiel5.9: 5.9: Decodierung Decodierungvon vonErgebnissen: Ergebnissen: Einer-Komplement: Zweierkomplement: (1111 1011)2 ist eine negative Zahl. Sie wird komplementiert zu (0000 0100)2. (1111 1011)2 stellt also im EinerKomplement die Zahl (-4)10 dar. (1110 1011)2 ist eine negative Zahl. Sie wird komplementiert zu (0001 0100)2. Addition von 1 führt zu (0001 0101)2. (1110 1011)2 stellt also im ZweierKomplement die Zahl (-21)10 dar. (0010 0101)2 ist eine positive Zahl. Sie muss nicht umgewandelt werden und stellt offensichtlich (+37)10 dar. (0110 0001)2 ist eine positive Zahl und muss nicht umgewandelt werden. Sie stellt offensichtlich (+97)10 dar. Kapitel 5: Darstellung von Daten im Rechner Seite 17 Vergleich der Darstellungen Alternative Darstellungen ganzer Zahlen mit drei Bits: Bitfolge Kapitel 5: Darstellung von Daten im Rechner Dezimaldarstellungen V/B K1 K2 0 0 0 + 0 + 0 + 0 0 0 1 + 1 + 1 + 1 0 1 0 + 2 + 2 + 2 0 1 1 + 3 + 3 + 3 1 0 0 - 0 - 3 - 4 1 0 1 - 1 - 2 - 3 1 1 0 - 2 - 1 - 2 1 1 1 - 3 - 0 - 1 Seite 18 Overflow Bei einer Addition kann ein Overflow auftreten: Entsteht bei der Addition zweier positiver Zahlen ein (scheinbar) negatives Ergebnis bzw. bei der Subtraktion ein (scheinbar) positives, so liegt eine Bereichsüberschreitung vor. Beispiel Beispiel5.12: 5.12: Mit Mitn=4 n=4Bits Bitssind sindim imZweier-Komplement Zweier-Komplementdie dieZahlen Zahlenvon von-8 -8bis bis+7 +7darstellbar. darstellbar. Addiert Addiertman mannun nundie dieZahlen Zahlen55und und4, 4,so soerhält erhältman manfolgendes folgendesResultat: Resultat: 0 1 0 1 + 0 1 0 0 1 0 0 1 Das DasErgebnis Ergebnislautet lautet-7 -7und undnicht nicht+9, +9,da da+9 +9nicht nichtmit mitvier vierBits Bitsdarstellbar darstellbarist. ist. Abhilfe schafft ein Overflow-Flag, das angibt, ob ein Overflow aufgetreten ist. Kapitel 5: Darstellung von Daten im Rechner Seite 19 Binary Coded Decimal (BCD) Eine vierte Möglichkeit, Dezimalzahlen darzustellen, ist der BCD-Code: Die Dezimalziffern 0 bis 9 werden wie gewohnt durch eine Bitfolge codiert. Die Bitfolge hat die konstante Länge 4. Es bleiben sechs Bitmuster ungenutzt, zwei davon werden zur Kennzeichnung positiver (1010) und negativer (1011) Zahlen verwendet. Beispiel Beispiel5.12: 5.12: Die DieBCD-Darstellung BCD-Darstellungder derZahl Zahl4397 4397lautet lautet(ohne (ohneVorzeichen): Vorzeichen): 0100 0100 0011 0011 1001 1001 0111. 0111. Entsprechend Entsprechendlauten lautendie dieDarstellungen Darstellungenvon von+4397 +4397und und-4397: -4397: 1010 1010 0100 0100 0011 0011 1001 1001 0111 0111(+4397), (+4397), 1011 1011 0100 0100 0011 0011 1001 1001 0111 0111(-4397). (-4397). Die BCD-Codierung ist mittlerweile veraltet. Kapitel 5: Darstellung von Daten im Rechner Seite 20 Binary Coded Decimal (BCD) Auch wenn die BCD-Darstellung einer Zahl leicht herzustellen und abzulesen ist, so ist das Rechnen mit dieser Darstellung sehr kompliziert: Beispiel Beispiel5.13: 5.13:Rechnen Rechnenmit mitder derBCD-Codierung BCD-Codierung Wir berechnen 9 + 1: Addition von 6: 9 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 + 1 + 0 0 0 0 0 0 0 1 + 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1010 ist keine Zahl, sondern das Zeichen für +. Da sechs Bitmuster nicht genutzt Jetzt haben wir das richtige Ergebnis. werden, muss eine 6 addiert werden: Bereits die Addition von zwei BCD-Zahlen kann eine Dezimalanpassung erfordern. Kapitel 5: Darstellung von Daten im Rechner Seite 21 5.2 Darstellung von reellen Zahlen Bei den bisherigen Zahlendarstellungen sind wir immer von ganzen Zahlen ausgegangen. Mit jedem Rechner lassen sich darüber hinaus auch nicht-ganzzahlige Dualbzw. Dezimalbrüche verarbeiten. Das geschieht durch Verwendung spezieller Darstellungen: Die Festkommadarstellung belässt das Komma für alle Zahlen an einer fest vorgegebenen Stelle, die Gleitkommadarstellung verschiebt das Komma so, dass signifikante Stellen erhalten bleiben. Das Komma befindet sich nicht bei allen Zahlen an der gleichen Stelle. Kapitel 5: Darstellung von Daten im Rechner Seite 22 Festkommadarstellung Wird eine Zahl durch eine n-stellige Dual- (bzw. Dezimal-) Zahl (eventuell komplementiert) dargestellt, wobei das Komma an beliebiger, aber fester Stelle angenommen wird, so spricht man von einer Festkomma-Darstellung. Beispiel Beispiel5.14: 5.14: (a) (a)Das DasKomma Kommawird wirdrechts rechtsvon vonder derStelle Stellemit mitdem demniedrigsten niedrigstenWert Wert angenommen. angenommen. n −1 i Ein n-bit-Wort (x ,… , x ) stellt dann die Zahl dar. z = x g 2 Ein n-bit-Wort (xn-1 ,… , x0 )2 stellt dann die Zahl dar. i n-1 0 2 ∑ i =0 (b) (b)Das DasKomma Kommawird wirdlinks linksvon vonder derStelle Stellemit mitdem demhöchsten höchstenWert Wert angenommen. angenommen. n −i z = x g 2 ,… , x ) stellt dann die Zahl dar. Ein n-bit-Wort (x i dar. Ein n-bit-Wort (x1 ,… , xn )2 stellt dann die Zahl 1 n 2 ∑ i =1 Ist z.B. n=4, so ist 1001 die Darstellung von Ist z.B. n=4, so ist 1001 die Darstellung von -4 11⋅ ⋅22-1-1++00⋅ ⋅22-2-2++00⋅ ⋅22-3-3+1 +1⋅ ⋅22-4==0,5625. 0,5625. Kapitel 5: Darstellung von Daten im Rechner Seite 23 Festkommadarstellung Im Allgemeinen stellt die Bitfolge (xn-1,…, x1, x0, x-1,…, x-m+1,x-m)2, die Zahl x= n −1 ∑ i =− m xi g2i dar. Dabei wird das Komma rechts von der Stelle x0 angenommen. Zur Darstellung negativer Zahlen wird ein Bit für das Vorzeichen reserviert oder eine der Komplementdarstellungen verwendet. Kapitel 5: Darstellung von Daten im Rechner Seite 24 Umrechnung dual-dezimal Ein Dualbruch kann leicht in einen Dezimalbruch umgerechnet werden. Umgekehrt ist auch ein Dezimalbruch einfach in einen Dualbruch zu überführen: Das Verfahren verläuft komplementär zu dem bereits bekannten Verfahren zur Umwandlung von Dezimal- in Dualzahlen. Multipliziere die Zahl mit der Basis. Die vor dem Komma stehenden Ergebnisse werden in der Reihenfolge des Entstehens gelesen. Tritt vor dem Komma eine 1 auf, wird diese für die nachfolgenden Multiplikationen ignoriert. Treten hinter dem Komma nur noch Nullen auf, ist die Berechnung beendet. Beispiel Beispiel5.15: 5.15:Umrechnung Umrechnungeines einesDezimalbruches Dezimalbruches Zur ZurDarstellung Darstellungdes desDezimalbruches Dezimalbruches0,625 0,625gehen gehenwir wirwie wiefolgt folgtvor: vor: 0,625 · 2 = 1,25 0,25 · 2 = 0,5 0,5 · 2 = 1,0 Also (0,101)22 Alsofolgt: folgt:(0,625) (0,625)1010==(0,101) Kapitel 5: Darstellung von Daten im Rechner Seite 25 Rechnen mit Festkomma-Zahlen Um Operationen mit Festkomma-Zahlen durchführen zu können, muss das Komma immer an der gleichen Stelle angenommen werden. Eventuell sind dazu Transformationen der Operatoren notwendig. Beispiel: Beispiel:Transformation Transformationvon vonOperatoren Operatoren Bei Beieiner einerWortlänge Wortlängevon von88Bit Bitund und66Stellen Stellenvor vorund und22Stellen Stellenhinter hinterdem dem Komma Kommamuss muss(0,01010011100) (0,01010011100)22dargestellt dargestelltwerden werdenals als(000000,01) (000000,01)22.. Durch die Transformation von Operatoren können signifikante Stellen verloren gehen! Dieser Nachteil wird durch die Gleitkomma-Darstellung vermieden. Kapitel 5: Darstellung von Daten im Rechner Seite 26 Gleitkommadarstellung Bei der Gleitkommadarstellung (halblogarithmische Darstellung) wird jede Zahl in der Form z = ± m × b±d dargestellt. m heißt Mantisse, d Exponent und b ist die Basis für den Exponenten b stimmt nicht notwendig mit der Basis des zugrunde liegenden Zahlensystems überein! Beispiel Beispiel5.16: 5.16:Gleitkommadarstellung Gleitkommadarstellung--Basis Basis Die DieDezimalzahl Dezimalzahl1587,2 1587,2ist istwie wiefolgt folgtdarstellbar: darstellbar: 3 1587,2 1587,2==3,1 3,1⋅ ⋅ 88 3.. Mantisse Mantisse Basis Basisdes desExponenten Exponenten Exponent Exponent Es Esgilt giltalso alsob=8, b=8,die dieBasis Basisdes desverwendeten verwendetenZahlensystems Zahlensystemsist ist10. 10. Kapitel 5: Darstellung von Daten im Rechner Seite 27 Gleitkommadarstellung Im Folgenden sei b=2. Die Basis ist für alle auftretenden Exponenten gleich und muss nicht gespeichert werden. Deshalb ist jede Gleitkommazahl darstellbar durch (±m , ±d). Die Gleitkommadarstellung einer gegebenen Zahl ist nicht eindeutig! Beispiel Beispiel5.17: 5.17: Die DieDezimalzahl Dezimalzahl1587,2 1587,2hat hatverschiedene verschiedeneDarstellungen, Darstellungen,z.B.: z.B.: 1587,2 = 158720 ⋅ 10-2 = 1,5872 ⋅ 103 = 0,015872 ⋅ 105 = 15,872 ⋅ 102 = 15872000 ⋅ 10-4 Kapitel 5: Darstellung von Daten im Rechner Seite 28 Rechnen mit der Gleitkommadarstellung Da diese Darstellung nicht eindeutig ist, erfordert eine Gleitkomma-Operation eventuell gewisse Vorbereitungen: Beispiel Beispiel5.17: 5.17:Vorbereitung Vorbereitungeiner einerGleitkomma-Operation Gleitkomma-Operation 2 7 Um Umdie dieZahlen Zahlen15,872 15,872⋅ ⋅10 102und und0,0007842 0,0007842⋅ ⋅10 107zu zuaddieren, addieren,wird wirdzunächst zunächst 2 der derzweite zweiteOperand Operanddurch durch78,42 78,42⋅ ⋅10 102ersetzt, ersetzt,um umdann dann 2 (15,872 (15,872++78,42) 78,42)⋅ ⋅10 102 rechnen rechnenzu zukönnen. können. Kapitel 5: Darstellung von Daten im Rechner Seite 29 Normalisierte Gleitkommadarstellung Um Probleme im Zusammenhang mit der Nicht-Eindeutigkeit einer Gleitkommadarstellung zu vermeiden, wird in Rechnern eine normalisierte Darstellung verwendet: Definition Definition5.2: 5.2:normalisierte normalisierteDarstellung Darstellung ±d Eine EineGleitkommazahl Gleitkommazahlder derForm Form±±mm××bb±dheißt heißtnormalisiert, normalisiert,falls fallsgilt: gilt: 1 ≤ m <1 b Im ImFall Fallb=2 b=2(als (alsBasis Basisfür fürMantisse Mantisseund undExponent) Exponent)folgt, folgt,dass dassfür fürdie dieMantisse Mantisse einer einernormalisierten normalisiertenGleitkommazahl Gleitkommazahlgilt: gilt: 1 ≤ m <1 2 Also Alsowird wirddas dasKomma Kommalinks linksvon vonder derhöchstwertigsten höchstwertigstenStelle Stelle(das (dasam amweitesten weitesten links linksstehende stehendeBit) Bit)der derMantisse Mantisseangenommen. angenommen.Dieses DiesesBit Bitist istungleich ungleich0. 0. Kapitel 5: Darstellung von Daten im Rechner Seite 30 Normalisierte Gleitkommadarstellung Beispiel Beispiel5.18: 5.18:Normalisierung Normalisierungvon vonDualzahlen Dualzahlen (a) (a)Die Dienormalisierte normalisierteDarstellung Darstellungvon von0,000100111 0,000100111(dual) (dual)lautet: lautet: -3 0,100111 0,100111⋅ ⋅22-3.. 2 (b) (dual)lautet: lautet: (b)Die Dienormalisierte normalisierteDarstellung Darstellungvon von101100,001 101100,001⋅ ⋅222(dual) 8 0,101100001 0,101100001⋅ ⋅228.. Beispiel Beispiel5.19: 5.19:Normalisierung Normalisierungvon vonDualzahlen Dualzahlenmit mitb=8 b=8 2 Gesucht Gesuchtist istdie dienormalisierte normalisierteDarstellung Darstellungvon von(0,000011) (0,000011)22⋅ ⋅882.. 1 Für die Mantisse m gilt dann: Für die Mantisse m gilt dann: 8 ≤ m < 1 Die Diebinäre binäreMantisse Mantisse0,000011 0,000011kann kannoktal oktalgeschrieben geschriebenwerden werdenals als0,03, 0,03,d.h. d.h. die dienormalisierte normalisierteDarstellung Darstellunglautet: lautet: (0,000011)2 ⋅ 82 = (0,03)8 ⋅ 82 = (0,3)8 ⋅ 81 = (0,011)2 ⋅ 81 Kapitel 5: Darstellung von Daten im Rechner Seite 31 Normalisierte Gleitkommadarstellung Beispiel Beispiel5.19: 5.19:Normalisierung Normalisierungvon vonDualzahlen Dualzahlenmit mitb=16 b=16 Die Dieentsprechenden entsprechendenArgumentation Argumentationwie wievorher vorherliefert liefertfür fürdie dieZahl Zahl 4 (0,000000110101) (0,000000110101)22⋅ ⋅16 164 die dienormalisierte normalisierteDarstellung Darstellung 3 (0,00110101) (0,00110101)22⋅ ⋅16 163.. Man Manbeachte, beachte,dass dassdie dieerste erstedem demKomma Kommafolgende folgendeHexadezimal-Ziffer Hexadezimal-Ziffer ungleich ungleichNull Nullist. ist. Eine EineVeränderung Veränderungdes desExponenten Exponentenum um11entspricht entsprichteiner einerMultiplikation Multiplikation(bzw. (bzw. 4 Division) sodass dassdas dasKomma Kommanicht nichtum umeinzelne einzelneStellen, Stellen, Division)durch durch16 16(=2 (=24),),so sondern sondernum umvier vierStellen Stellengleichzeitig gleichzeitigverschoben verschobenwerden werdenkann. kann. Kapitel 5: Darstellung von Daten im Rechner Seite 32 Gleitkommazahlen im Rechner Für die rechnerinterne Darstellung von Gleitkommazahlen werden die Länge der Mantisse und des Exponenten festgelegt. Beispiel: Beispiel: Stehen Stehen32 32Bits Bitszur zurVerfügung, Verfügung,so sokann kanneine eineAufteilung Aufteilungwie wiefolgt folgtaussehen: aussehen: 11Bit Bitfür fürdas dasVorzeichen, Vorzeichen, 23 23Bits Bitsfür fürdie dieMantisse Mantisse(in (inVorzeichenVorzeichen-Betrags-Darstellung) Betrags-Darstellung)und und 88Bits Bitsfür fürden denExponenten Exponentenzur zurBasis Basis2. 2. Die DieMantisse Mantissewird wirdnormalisiert normalisiertgespeichert, gespeichert,der derExponent Exponentim im Zweierkomplement. Zweierkomplement. Dann Dannist ist 0 11101001011000000000000 00001010 VZ Mantisse Exponent 10 die (1110100101,1)22==(933,5) (933,5)1010 dieDarstellung Darstellungder derZahl Zahl(0,11101001011) (0,11101001011)22⋅ ⋅2210==(1110100101,1) Kapitel 5: Darstellung von Daten im Rechner Seite 33 Darstellbarer Zahlenbereich Mit der eben vorgestellten Darstellung sind positive Zahlen z im Bereich 0,5 × 2 −128 ≤ z ≤ (1 − 2−23 ) × 2127 und negative Zahlen z im Bereich darstellbar. −(1 − 2−23 ) × 2127 ≤ z ≤ −0,5 × 2−128 Um den Nullpunkt herum wird ein kleines „Loch“ auf der Zahlenachse nicht erfasst. Das gilt insbesondere auch für die Null selbst. Zur Darstellung von Null wird deshalb von der üblichen Konvention abgewichen. 0,0 ist darstellbar mit Vorzeichen 0 und Exponent 0, der Wert der Mantisse wird ignoriert. Kapitel 5: Darstellung von Daten im Rechner Seite 34 Hidden Bit Durch diese Darstellung der Null wird auch das folgende Problem gelöst: Ist die Basis des Exponenten 2, so steht an erster Stelle hinter dem Komma immer eine Eins. Sie kann also weggelassen werden, man spricht dann von einem Hidden Bit. Dieses Bit steht dann der Mantisse zur Verfügung, so dass sich ihre Genauigkeit erhöht. Beispiel: Beispiel: Die DieMantisse Mantisse00…00 00…00steht stehtdann dannnicht nichtfür fürdie dieZahl Zahl0,0 0,0sondern sondernfür für½. ½. Eine Verwechslung mit 0,0 ist also durch eine Sonderregelung auszuschließen. Kapitel 5: Darstellung von Daten im Rechner Seite 35