Kapitel 5: Darstellung von Daten im Rechner

Werbung
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
Herunterladen