+ All Categories
Home > Documents > Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement...

Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement...

Date post: 21-Jun-2019
Category:
Upload: trantruc
View: 213 times
Download: 0 times
Share this document with a friend
63
Kapitel 6: Darstellung von Daten im Rechner Seite 1 / 63 Kapitel 6 Darstellung von Daten im Rechner
Transcript
Page 1: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 1 / 63

Kapitel 6Darstellung von Daten im Rechner

Page 2: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 2 / 63

Darstellung von Daten im Rechner

Inhaltsverzeichnis6.1 Darstellung ganzer Zahlen

6.2 Darstellung reeller Zahlen6.3 Rechnerarithmetik

6.4 Darstellung alphanumerischer Daten

Page 3: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 3 / 63

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 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?

Page 4: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 4 / 63

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 verbleibenden Bits wird der Betrag der Zahl dargestellt.

� 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.

Beispiel 6.1:

Die Zahl -19 wird mit 8 Bits also dargestellt als:

19-

00100111

Page 5: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 5 / 63

Nachteile der Vorzeichen/Betrag-Darstellung

Diese Art der Darstellung ist zwar intuitiv, besitzt aber einige Nachteile:� Es gibt zwei verschiedene Nullen: +0 (00...00) und -0 (10...00).

Ein Rechner, der Zahlen bitweise vergleicht, wird diese nicht als gleich ansehen.

� Das Rechnen mit dieser Zahlendarstellung ist schwierig, da sie sowohl ein Addier-als 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:

+y

-y

+y

-y

-y

+y

mit |y| < |x|

mit |x| < |y|

mit |y| � |x|

mit |x| � |y|

Subtraktion-(x-y)-x

Subtraktion-(y-x)+x4

Subtraktiony-x-x

Subtraktionx-y+x3

Addition-(x+y)-x2

Additionx+y+x1

Auszuführende OperationOperandenFall

Page 6: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 6 / 63

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 durch die Komplement-Darstellung:

Das Einer-Komplement einer Zahl x erhält man also durch bitweises Invertieren von x, das Zweier-Komplement durch zusätzliche Addition von 1 (modulo 2n).

Definition 6.1:

Sei x = (xn-1,…, x0)2 ∈ Bn eine n-stellige Dualzahl.

K1(x) := (1 ⊕ xn-1,…, 1 ⊕ x0)2 heißt Einer-Komplement von x.

K2(x) := (1 ⊕ xn-1,…, 1 ⊕ x0)2 +1 = K1(x) + 1 (modulo 2n)

heißt Zweier-Komplement von x.

Page 7: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 7 / 63

Komplementdarstellung - Beispiel

Wesentlich bei der Komplement-Darstellung ist, dass sie stets auf eine vorgegebene Stellenzahl bezogen wird.

Beispiel 6.2:

Sei x = (10011110)2. Dann gilt:

01100010=K2(x)

01100001=K1(x)

Page 8: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 8 / 63

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 +x = x

� Eine negative Zahl -x wird dargestellt durch -x = N-1-x (in K1), -x = N-x (in K2).

Beispiel 6.3:

Sie n=4. Dann gilt: N = 24 = 16.

Dann stimmt die Darstellung von -5 im Zweier-Komplement nach obiger Vereinbarung mit der von 16-5 = 11 überein:

(5)10 = (0101)2

K2(5) = K1(5)+1 = (1010)2+1 = (1011)2 = (11)10

Page 9: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 9 / 63

Komplementdarstellungen

Zweier-Komplement:Umfasst den Wertebereich von

-2n-1 bis 2n-1-1.Vorteil: es gibt nur eine Darstellung der Null.

Einer-Komplement:Umfasst den Wertebereich von

-2n-1+1 bis 2n-1-1.Nachteil: es gibt zwei Darstellungen der Null.

Page 10: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 10 / 63

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.

Page 11: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 11 / 63

Rechnen mit dem Einer-Komplement

Beispiel 6.4: (Subtraktion im Einer-Komplement)Zur Subtraktion a-b addiert man das Komplement von b zu a (a+K1(b)).a=(00110100)2=(52)10, b=(01000110)2 =(70)10 bei n=8 Bits.

Subtraktion

a-b = (237)10 = (256 - 1 - 237)10 = (-18)10

Addition

a+b=(122)10

01100010+b

01011110a+b

00101100a

10011101+K1(b)

10110111a-b

00101100a

Page 12: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 12 / 63

Rechnen mit dem Einer-Komplement

Beispiel 6.4: (Subtraktion im Einer-Komplement)Tritt bei der Subtraktion ein Übertrag auf, wird dieser zum Ergebnis addiert:

a = (00110100) = (52)10 , b = (00011001) = (25)10.

Addition des Übertrags zur niedrigsten Stelle des Ergebnisses:

a-b=(27)10

01100111+K1(b)

010110001a-b

00101100a

1+

11011000a-b

01011000

Page 13: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 13 / 63

Rechnen mit dem Zweier-Komplement

Beispiel 6.5: (Subtraktion im Zweier-Komplement)Zur Subtraktion a-b addiert man das Komplement von b zu a (a+K2(b)).a=(00110100)2=(52)10, b=(01000110)2 =(70)10 bei n=8 Bits.

Subtraktion

a-b = (238)10 = (256 - 238)10 = (-18)10

Addition

a+b=(122)10

01100010+b

01011110a+b

00101100a

01011101+K2(b)

01110111a-b

00101100a

Page 14: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 14 / 63

Rechnen mit dem Zweier-Komplement

Beispiel 6.5: (Subtraktion im Zweier-Komplement)Tritt bei der Subtraktion ein Übertrag auf, wird dieser ignoriert: a = (00110100) = (52)10 , b = (00011001) = (25)10.

Ignorieren des Übertrags liefert:

a-b=(27)10

11100111+K2(b)

110110001a-b

00101100a

11011000=a-b

Page 15: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 15 / 63

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.

Page 16: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 16 / 63

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, dann wird es wie folgt decodiert:� 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, ist keine Umwandlung notwendig.

Page 17: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 17 / 63

Decodierung der Komplementdarstellungen

Beispiel 6.7:Decodierung von Ergebnissen:

Zweierkomplement:

(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 Zweier-Komplement die Zahl (-21)10 dar.

(0110 0001)2 ist eine positive Zahl und muss nicht umgewandelt werden. Sie stellt offensichtlich (+97)10 dar.

Einer-Komplement:

(1111 1011)2 ist eine negative Zahl.Sie wird komplementiert zu (0000 0100)2.

(1111 1011)2 stellt also im Einer-Komplement die Zahl (-4)10 dar.

(0010 0101)2 ist eine positive Zahl.

Sie muss nicht umgewandelt werden und stellt offensichtlich (+37)10 dar.

Page 18: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 18 / 63

Vergleich der Darstellungen

Alternative Darstellungen ganzer Zahlen:

Page 19: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 19 / 63

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.

Abhilfe schafft ein Overflow-Flag, das angibt, ob ein Overflow aufgetreten ist.

Beispiel 6.8:

Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar.

Addiert man nun die Zahlen 5 und 4, so erhält man folgendes Resultat:

Das Ergebnis lautet -7 und nicht +9, da +9 nicht darstellbar ist.

1001

0010+

1010

Page 20: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 20 / 63

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.

Die BCD-Codierung ist mittlerweile veraltet.

Beispiel 6.9:

Die BCD-Darstellung der Zahl 4397 lautet (ohne Vorzeichen):

0100 0011 1001 0111.

Entsprechend lauten die Darstellungen von +4397 und -4397:

1010 0100 0011 1001 0111 (+4397),

1011 0100 0011 1001 0111 (-4397).

Page 21: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 21 / 63

Binary Coded Decimal (BCD)

Auch wenn die BCD-Darstellung einer Zahl leicht herzustellen und abzulesen ist, so ist das Rechnen mit dieser Darstellung kompliziert:

Bereits die Addition von zwei BCD-Zahlen kann eine Dezimalanpassung erfordern.

Beispiel 6.10: Rechnen mit der BCD-Codierung

Addition von 6:

Jetzt haben wir das richtige Ergebnis.

Wir berechnen 9 + 1:

1010 ist keine Zahl, sondern das Zeichen für +.

Da sechs Bitmuster nicht genutzt werden, muss eine 6 addiert werden:

0101000001

10000000+1+

100100009

00001000

01

01100000+

01010000

Page 22: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 22 / 63

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 Dual-bzw. 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 Gleitkommadarstellungverschiebt das Komma so, dass signifikante Stellen erhalten bleiben. Das Komma befindet sich nicht bei allen Zahlen an der gleichen Stelle.

Page 23: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 23 / 63

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 6.11:

(a) Das Komma wird rechts von der Stelle mit dem niedrigsten Wert angenommen.

Ein n-bit-Wort (xn-1,… , x0 )2 stellt dann die Zahl dar.

(b) Das Komma wird links von der Stelle mit dem höchsten Wert angenommen.

Ein n-bit-Wort (xn-1,… , x0 )2 stellt dann die Zahl dar.

Ist z.B. n=4, so ist 1001 die Darstellung von

1⋅ 2-1 + 0 ⋅ 2-2 + 0 ⋅ 2-3 +1 ⋅ 2-4 = 0,5625.

∑−

=

−⋅=1

0

2n

i

niixz

∑−

=

⋅=1

0

2n

i

iixz

Page 24: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 24 / 63

Festkommadarstellung

Im Allgemeinen stellt die Bitfolge (xn-1,…, x1, x0, x-1,…, x-m+1,x-m)2, die Zahl

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.

1

2n

ii

i m

x x−

=−

= ∑ �

Page 25: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 25 / 63

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 6.12: Umrechnung eines Dezimalbruches

Zur Darstellung des Dezimalbruches 0,625 gehen wir wie folgt vor:

Also folgt: (0,625)10 = (0,101)2

0,5 · 2 = 1,00,25 · 2 = 0,50,625 · 2 = 1,25

Page 26: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 26 / 63

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.

Durch die Transformation von Operatoren können signifikante Stellen verloren gehen!

Dieser Nachteil wird durch die Gleitkomma-Darstellung vermieden.

Beispiel 6.13: Transformation von Operatoren

Bei einer Wortlänge von 8 Bit und 6 Stellen vor und 2 Stellen hinter dem Komma muss (0,01010011100)2 dargestellt werden als (000000,01)2.

Page 27: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 27 / 63

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 notwendigerweise mit der Basis des zugrunde liegenden Zahlensystems überein.)

Beispiel 6.14: Gleitkommadarstellung - Basis 8

Die Dezimalzahl 1587,2 ist wie folgt darstellbar:

1587,2 = 3,1 ⋅ 8 3.

Mantisse Basis des Exponenten Exponent

Es gilt also b=8, die Basis des verwendeten Zahlensystems ist 10.

Page 28: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 28 / 63

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 6.15:

Die Dezimalzahl 1587,2 hat verschiedene Darstellungen, z.B.:

15872000 ⋅ 10-4=

15,872 ⋅ 102=

0,015872 ⋅ 105=

1,5872 ⋅ 103=

158720 ⋅ 10-2=1587,2

Page 29: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 29 / 63

Rechnen mit der Gleitkommadarstellung

Da diese Darstellung nicht eindeutig ist, erfordert eine Gleitkomma-Operation eventuell gewisse Vorbereitungen:

Beispiel 6.16: Vorbereitung einer Gleitkomma-Operation

Um die Zahlen 15,872 ⋅ 102 und 0,0007842 ⋅ 107 zu addieren, wird zunächst der zweite Operand durch 78,42 ⋅ 102 ersetzt, um dann

(15,872 + 78,42) ⋅ 102

rechnen zu können.

Page 30: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 30 / 63

Normalisierte Gleitkommadarstellung

Um Probleme im Zusammenhang mit der Nicht-Eindeutigkeit einer Gleitkommadarstellung zu vermeiden, wird in Rechnern eine normalisierte Darstellung verwendet:

Hinweis: Diese Festlegung ist nicht in allen Darstellungen gleich. Im unten beschriebenen IEEE 754 Format gilt etwa .

Definition 6.2: normalisierte Darstellung

Eine Gleitkommazahl der Form ± m × b±d heißt normalisiert, falls gilt:

Im Fall b=2 (als Basis für Mantisse und Exponent) folgt, dass für die Mantisseeiner normalisierten Gleitkommazahl gilt:

Also wird das Komma links von der höchstwertigsten Stelle (das am weitesten links stehende Bit) der Mantisse angenommen. Dieses Bit ist �0.

11m

b≤ <

11

2m≤ <

21 <≤ m

Page 31: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 31 / 63

Normalisierte Gleitkommadarstellung

Beispiel 6.17: Normalisierung von Dualzahlen(a) Die normalisierte Darstellung von 0,000100111 (dual) lautet:

0,100111 ⋅ 2-3.(b) Die normalisierte Darstellung von 101100,001 ⋅ 22 (dual) lautet:

0,101100001 ⋅ 28.

Beispiel 6.18: Normalisierung von Dualzahlen mit b=8Gesucht ist die normalisierte Darstellung von (0,000011)2 ⋅ 82.Für die Mantisse m gilt dann: Die binäre Mantisse 0,000011 kann oktal geschrieben werden als 0,03, d.h. die normalisierte Darstellung lautet:

11

8m≤ <

(0,011)2 ⋅ 81=

(0,3)8 ⋅ 81=

(0,03)8 ⋅ 82=(0,000011)2 ⋅ 82

Page 32: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 32 / 63

Normalisierte Gleitkommadarstellung

Beispiel 6.19: Normalisierung von Dualzahlen mit b=16Die entsprechenden Argumentation wie in Beispiel 6.18 liefert für die Zahl

(0,000000110101)2 ⋅ 164

die normalisierte Darstellung

(0,00110101)2 ⋅ 163.Man beachte, dass die erste dem Komma folgende Hexadezimal-Ziffer ungleich Null ist. Eine Veränderung des Exponenten um 1 entspricht einer Multiplikation mit (bzw. Division durch) 16 (=24), so dass das Komma nicht um einzelne Stellen, sondern immer nur um vier Stellen gleichzeitig verschoben werden kann.

Page 33: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 33 / 63

Gleitkommazahlen im Rechner

Für die rechnerinterne Darstellung von Gleitkommazahlen werden die Länge (in Bits) der Mantisse und des Exponenten festgelegt.

Beispiel 6.20:

Stehen 32 Bits zur Verfügung, so kann eine Aufteilung wie folgt aussehen:

1 Bit für das Vorzeichen,

23 Bits für die Mantisse (in Vorzeichen- Betrags-Darstellung) und

8 Bits für den Exponenten zur Basis 2.

Die Mantisse wird normalisiert gespeichert, der Exponent im Zweierkomplement.

Dann ist

die Darstellung der Zahl (0,11101001011)2 ⋅ 210 = (1110100101,1)2 = (933,5)10

ExponentMantisseVZ

00001010111010010110000000000000

Page 34: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 34 / 63

Darstellbarer Zahlenbereich

Mit der in Beispiel 6.20 vorgestellten Darstellung sind positive Zahlen z im Bereich

und negative Zahlen z im Bereich

darstellbar.

Um den Nullpunkt herum wird ein kleines „Loch“ auf der Zahlenachse nicht erfasst. Das gilt insbesondere auch für die Null selbst, da für sie keine normalisierte Darstellung existiert.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.

128 23 1270,5 2 (1 2 ) 2z− −× ≤ ≤ − ×

23 127 128(1 2 ) 2 0,5 2z− −− − × ≤ ≤ − ×

Page 35: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 35 / 63

Hidden Bit

Durch diese Darstellung der Null wird auch das folgende Problem gelöst:Ist die Basis des Exponenten 2, so steht in der normalisierten Darstellung an erster Stelle hinter dem Komma immer eine Eins. Sie kann also bei der Darstellung im Speicher 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.

Eine Verwechslung mit 0,0 ist also durch eine Sonderregelung auszuschließen.

Beispiel 6.21:

Die Mantissen-Bitfolge 00…00 steht dann nicht für die Zahl 0,0... sondern

für 0,10..., also für ½.

Page 36: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 36 / 63

Vergleich Festkomma-/Gleitkommadarstellung

Unter der Verwendung von Gleitkommazahlen ist ein erheblich größerer Zahlenbereich darstellbar als mit der Festkommadarstellung.Allerdings leidet darunter die Genauigkeit, die bei der Festkommadarstellung höher ist.

Die Diskrepanz zwischen Genauigkeit und darstellbarem Zahlenbereich der Gleitkommadarstellung wird durch Verwendung einer anderen Basis als 2 vergrößert.

23 Bits - ca. 7 Dezimalstellen�2127Gleitkommadarstellung

(32 Bit, wie oben vorgestellt)

32 Bits - ca. 10 Dezimalstellen232-1Festkommadarstellung

(32 Bit)

GenauigkeitGrößte darstellbare Zahl

Page 37: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 37 / 63

Excess-Darstellung

Die Exponenten werden häufig nicht im Zweier-Komplement, sondern in der Excess-Darstellung (auch Biased-Notation genannt) dargestellt.

Allgemein erhält man die Excess-Darstellung d‘ eines Exponenten d bei g Bits durch: d‘=d+2g-1.Für g=8 spricht man von der Excess-128-Darstellung.

Beispiel 6.22: Excess-Darstellung

Betrachten wir durch 8 Bits dargestellte Exponenten d, für welche bei Verwendung des Zweier-Komplementes -128 d 127 gilt.

Durch Addition von 128=28-1 zu jedem d erhält man einen Exponenten d‘ im Bereich 0 d‘ 255.

Durch diese Verschiebung wird der Vergleich zweier Exponenten vereinfacht (z.B. für die Anpassung zweier Operanden bei der Addition), gilt d1 < d2, dann gilt das auch für die gewöhnlichen Dualdarstellungen von d1 und d2.

≤ ≤

≤ ≤

Page 38: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 38 / 63

IEEE 754

Das IEEE 754 Standard Floating Point Number Format ist eine sehr häufig verwendete Gleitkommadarstellung.Für 32 Bit sieht dieses Format wie folgt aus:� Das erste Bit ist ein Vorzeichenbit:

• 0 steht für eine positive Zahl,

• 1 für eine negative Zahl.

� Die folgenden acht Bit nehmen den Exponenten auf• Er ist in der Excess-127-Darstellung gespeichert.

• Von dem Exponenten muss der Wert 127 subtrahiert werden, um den tatsächlichen Exponenten zu ermitteln.

• Die Basis des Exponenten ist 2.

� Die letzten 23 Bits nehmen die Mantisse auf:• sie ist normalisiert als 1,… (die erste 1 steht also vor dem Komma!) und

• hat als hidden Bit die 1 vor dem Komma.

Mantisse MExponent EVZ

31…9… 810

Page 39: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 39 / 63

IEEE 754

Eine Gleitkommazahl im IEEE 754-Format repräsentiert also die Zahl N mit:

N = VZ 1,M × 2E-127.

Für das Rechnen mit Zahlen im IEEE 754-Format gelten die gleichen Regeln, wie für die bisher bekannte Gleitkommadarstellung.

Beispiel 6.23:

Die Zahl N= -0,75 wird dargestellt als

1,5126-127=-1-

10000000000000000000000011111101

( ) 75,05,05,121,1 12 −=×−=×−= −N

Page 40: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 40 / 63

IEEE 754 - reservierte Zahlen

Im IEEE 754-Format werden einige Fehler- und Sonderfälle durch bestimmte Zahlen dargestellt. Es gibt solche reservierte Zahlformate für die folgenden Fälle:

� Not a Number (NaN) wird verwendet, wenn das Ergebnis einer Operation keine gültige Zahl erzeugt (z.B. Wurzel einer negativen Zahl).

� Unendlichkeit: Wird verwendet als ± �, je nach Vorzeichen.

� Denormalisiert: Die Zahl ist nicht Null, aber zu klein, um sie normalisiert zuspeichern, dann wird sie denormalisiert, also als 0.M dargestellt.

� Null: stellt die Zahl 0 dar.

UnendlichDenormalisiertM�0

NaNNullM=0

E=255E=0

Page 41: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 41 / 63

Multiplikation

In Kapitel 3 und 5 wurden Addiernetze und -werke vorgestellt.Diese können im Allgemeinen auch zur Multiplikation und zur Division verwendet werden.

Grundsätzlich wird die Multiplikation im Dualsystem in der gleichen Weise durchgeführt wie im Dezimalsystem nach der Schulrechenmethode:

� Der Multiplikand wird nacheinander mit jedem einzelnen Bit des Multiplikators multipliziert, dabei entsteht jeweils ein Teilprodukt.

� Beginnt man mit dem am weitesten rechts stehenden Bit, so wird ab der zweiten Stelle das Teilprodukt um jeweils eine Stelle nach links verschoben.

� Das Ergebnis erhält man durch Summation aller Teilprodukte.

Page 42: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 42 / 63

Multiplikation

Beispiel 6.24: Multiplikation im Dualsystem

Wir betrachten die Aufgabe 12 ⋅ 9:

Ergebnis0011011

0011

0000Teilprodukte

0000

0011

Multiplikator1001

Multiplikand0011

1 8

8

9

2

Ergebnis0

9Teilprodukte

1

Multiplikator

Multiplikand1

Page 43: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 43 / 63

Multiplikation

Die Multiplikation erfordert einen höheren physikalischen Aufwand als die Addition:� Es ist ein doppelt so langes Ergebnisregister erforderlich.

� Die Hardware muss in der Lage sein, Shift-Operationen durchzuführen.

Zudem ist die Schulmethode nicht effizient:� Nullen im Multiplikator erfordern den gleichen Aufwand beim Multiplizieren wie die

Einsen, tragen aber nichts zum Ergebnis bei.� Teilprodukte müssen zwischengespeichert werden, um sie anschließend zu

addieren.

Page 44: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 44 / 63

Multiplikation - Verbesserung der Methode

Formal ist das Schulrechenverfahren wie folgt beschreibbar:Sei x der Multiplikant, y=(yn-1,…y0) der Multiplikator, dann ist

In der Praxis ist es sinnvoll jeden Term zu addieren, sobald er generiert wurde, so dass die Multiplikation wie folgt ausgeführt wird:

2 10 1 2 12 2 ... 2n

nx y x y x y x y x y −−= + + + +� � � � � � � �

1

0

2n

ii

i

x y−

=

= ∑ � �

2 10 1 2 1(...(( 2) 2 ) ... 2 )n

nx y x y x y x y x y −−= + + + +� � � � � � � �

Page 45: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 45 / 63

Multiplikation - Schaltung

Man kommt ohne ein doppelt so langes Register zur Aufnahme des Ergebnisses aus, wenn man die Eingaben auf halbe Wortlänge beschränkt.

Damit ist die gezeigte Schaltung in der Lage, die in Beispiel 6.24 gezeigte Multiplikation auszuführen.

Page 46: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 46 / 63

Multiplikation - Funktionsweise der Schaltung

Die Multiplikation mit der Schaltung läuft wie folgt ab:

� Der Akku-Inhalt wird gelöscht.

� Die rechten 4 Bits des X-Registers nehmen den Multiplikanden auf, Y den Multiplikator.

� Eine zusätzliche Logik (in der Abbildung nicht gezeigt),überprüft das Bit Null von Y. • Ist dieses Bit =1, dann wird der Inhalt von X zum Akku-Inhalt addiert.

• Ist das Bit =0, dann bleibt der Akku-Inhalt unverändert.

• Anschließend wird der Inhalt von Y um ein Bit nach rechts, der Inhalt von X um ein Bit nach links geschoben und wieder Bit 0 von Y überprüft.

� Stehen im Register Y nur noch Nullen, ist die Rechnung beendet, das Ergebnis der Multiplikation steht im Akku.

Page 47: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 47 / 63

Multiplikation - Funktionsweise der Schaltung

Beispiel 6.25:Multiplizieren wir wieder 12 und 9, dann arbeitet die Schaltung wie folgt:

Initialisierung Addieren Shift

Page 48: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 48 / 63

Multiplikation - Funktionsweise der Schaltung

Beispiel 6.25 (Fortsetzung):

Add/Shift Add/Shift Add/Shift

Page 49: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 49 / 63

Beschleunigung der Schulmethode

Die dargestellte Multiplikation nach der Schulmethode lässt sich beschleunigen.

� Verwendung eines Addiernetzes mit schneller Carry-Berechnung

� Zwischenspeicherung des bei der Addition auftretenden Übertrags und Verarbeitung desselben erst in späteren Schritten

� Malnehmen des Multiplikanden in jedem Schritt nicht nur mit einem Bit des Multiplikators, sondern mit k > 1 benachbarten Bits.

Grundlage schneller Multiplizierer sind schnelle Addierer.

Page 50: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 50 / 63

Carry-Save-Multiplikation

Wir verwenden als Addiernetz nun den Carry-Save-Adderund entwerfen damit ein Carry-Save-Multiplikationsnetz.Man kann die Multiplikation vierstelliger Dualzahlen in tabellarischer Form darstellen:

Die Multiplikation lässt sich nun durch Addition der Zeilen implementieren.Bei vier Summanden reicht dazu ein zweistufiges Carry-Save-Addiernetz aus.

Page 51: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 51 / 63

Rechenoperationen auf Gleitkommazahlen

Die bisherigen Verfahren und Schaltungen lassen sich auch zur Multiplikation von Gleitkommazahlen verwenden, indem man die Mantissen und die Exponenten nacheinander in der Hardware verarbeitet:

� Zur Multiplikation sind die Mantissen zu multiplizieren und die Exponenten zu addieren.

� Bei der Division werden die Mantissen dividiert, die Exponenten subtrahiert.

� Bei der Addition und der Subtraktion muss man darauf achten, dass die Operanden den gleichen Exponenten haben, dafür wird üblicherweise der Operand mit dem niedrigsten Exponenten „denormalisiert“.

Durch die feste Wortlänge und die festgelegte Anzahl von Bits für Mantisse und Exponent gelten für Gleitkommazahlen im Rechner nicht alle üblichen Rechengesetze.

Page 52: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 52 / 63

Rechenoperationen auf Gleitkommazahlen

Beispiel 6.26: AssoziativgesetzSei x=+0,1567⋅ 103, y=+0,4322 ⋅ 105, z=-0,4323 ⋅ 105

Also folgt: (x+y)+z � x+(y+z). Das Assoziativgesetz gilt also nicht!

Für x+(y+z):So gilt für (x+y)+z:

+0,4337 ⋅ 105=

+0,0015 ⋅ 105 +0,4322 ⋅ 105=

+0,1567 ⋅ 103 +0,4322 ⋅ 105=x+y

+0,1400 ⋅ 103=

+0,0014 ⋅ 105=

+0,4337 ⋅ 105 -0,4323 ⋅ 105=(x+y)+z

-0,1000 ⋅ 102=

-0,0001 ⋅ 105=

+0,4322 ⋅ 105 -0,4323 ⋅ 105=y+z

+0,1467 ⋅ 103=

+0,1567 ⋅ 103-0,0100 ⋅ 103=

+0,1567 ⋅ 103-0,1000 ⋅ 102=x+(y+z)

Page 53: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 53 / 63

Rechenoperationen auf Gleitkommazahlen

Für das Rechnen mit Gleitkommazahlen gelten die folgenden Regeln:Seien

dann gilt:

2 xdxx m= � 2 yd

yy m= �

( 2 ) 2 falls x y yd d d

x y x yx y m m d d−+ = + ≤� �

( 2 ) 2 falls x y yd d d

x y x yx y m m d d−− = − ≤� �

( ) 2 x yd d

x yx y m m +=� � �

/ ( / ) 2 x yd d

x yx y m m −= �

Page 54: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 54 / 63

Rechenoperationen auf Gleitkommazahlen

Sollen diese Operationen mit den bereits bekannten Addierwerken durchgeführt werden, muss die Behandlung von Exponenten und Mantissen im Allgemeinen softwaremäßig erfolgen.Für eine Addition sind das die folgenden Operationen:� Vergleich der Exponenten

� Shift der Mantisse der Zahl mit dem kleineren Exponenten

� Ausführung der eigentlichen Addition� Ggf. Normalisierung des Ergebnisses.

Um dies über die Hardware zu steuern und damit die Ausführungszeit von Gleitkomma-Operationen in ähnliche Dimensionen wie Festkomma-Operationen zu bringen, sind viele Rechenanlagen mit separaten Gleitkomma-Rechenwerken (Floating-Point-Prozessoren) ausgestattet. Diese verfügen über hinreichend lange Register zur Aufnahme von Operanden bzw. Ergebnissen, über eine geeignete Verknüpfungslogik und über ein eigenes Steuerwerk.

Page 55: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 55 / 63

Overflow und Underflow

Bei Gleitkomma-Operationen können sowohl Over- als auch Underflowsauftreten:

Da der Zwang zur Normalisierung evtl. ein Abschneiden signifikanter Stellen erfordert, ist in der Gleitkomma-Arithmetik mit Rundungsfehlern zu rechnen.

Beispiel 6.27: Over- und Underflow

Beides ist durch eine Normalisierung zu beheben.

Die Subtraktion

führt zu einem Underflow, da eine Null unmittelbar rechts vom Komma auftritt.

Die Addition

führt zu einem Overflow, da die Mantissedes Ergebnisses eine signifikante Stelle links vom Komma besitzt.

102⋅1,003

102⋅0,381+

102⋅0,622

102⋅0,023

102⋅0,599-

102⋅0,622

Page 56: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 56 / 63

Darstellung alphanumerischer Daten

Bisher: Darstellung von Zahlen und Operationen auf diesen.Jetzt: Darstellung von Texten.

Texte bestehen aus Charactern:� Buchstaben� Ziffern

� Komma, Punkt

� andere Sonderzeichen

Zur Darstellung der Character muss wieder eine rechnerinterne Darstellung aus Bits gewählt werden.

Auch hier gibt es wieder mehrere Möglichkeiten.

Page 57: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 57 / 63

Codierung von Charactern

Frage: welchen Umfang soll der Zeichensatz haben?Stehen 64 Speicherworte der Länge 6 Bits zur Verfügung, dann sind damit z.B. darstellbar:� 26 Buchstaben

� 10 Ziffern

� 28 weitere Zeichen, z.B.: + ( ) # = ; : @ usw.

Nachteile: � es fehlt eine Unterscheidung zwischen Klein- und Großbuchstaben, Signale zur

Kommunikation mit dem Rechner (z.B. „End of Message“) sind nicht berücksichtigt.

� Der Code ist nicht redundant - jedes Bit wird benötigt, es ist also nicht möglich, zu überprüfen, ob während der Übertragung Fehler aufgetreten sind.

� Bei modernen Rechnern ist die Wortlänge eine Zweierpotenz, 6 Bits können also nicht optimal in einem Wort „untergebracht“ werden.

Deshalb wird diese Codierung nicht mehr verwendet.

Page 58: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 58 / 63

ASCII-Codierung

Heute werden bevorzugt 8-Bit-Darstellungen verwendet.Ein weit verbreiteter Standard ist der ASCII-Code (American Standard-Code forInformation Interchange), welcher den folgenden Aufbau hat:

Page 59: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 59 / 63

ASCII-Code

Die angegebenen Steuerzeichen haben die folgende Bedeutung:

Delete IdleDELVertical TabulationV / TAB

Form FeedFF

EscapeESCLine FeedLF

Unassigned ControlUCHorizontal Tabulation/Skip

HT / SK

AcknowledgementACKFormat EffectorFE

Separator InformationS0-S7Audible SignalBELL

Logical End of MediumLEM„Are you … ?“RU

Synchronous IdleSYNC„Who are you“ (enquiry)WRU

ErrorERREnd of TransmissionEOT

Device ControlDC0-DC4End of MessageEOM

Shift InSIEnd of AddressEOA

Shift OutSOStart of MessageSOM

Carriage ReturnCRnull characterNULL

Page 60: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 60 / 63

ASCII-Code

Das achte Bit, das in der Tabelle mit P angegeben ist, dient zur Paritätsprüfung:

Gerade Parität:

Ungerade Parität:

Hier wird im Allgemeinen ungerade Parität benutzt.

0, sonst

1, falls die Anzahl der Einsen in 7…1 ungerade istP:=

0, sonst

1, falls die Anzahl der Einsen in 7…1 gerade istP:=

Page 61: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 61 / 63

Mit dem Paritätsbit kann festgestellt werden, ob während der Übertragung ein Bit gekippt ist:

ASCII-Code - Beispiele

Beispiel 6. 28: Verwendung des ASCII-Codes:

Rufen wir um Hilfe, sieht das in ASCII-Codierung mit ungerader Parität so aus:

Beispiel 6.29: Fehlerhafte Übertragung

Bei der Übertragung des Hilferufes ist beim Zeichen H ein Fehler aufgetreten.

Wir erhalten: 1100 1001. Das Paritätsbit ist 1 bei ungerader Parität, das Wort enthält aber drei Einsen. Also muss ein Bit gekippt sein, die Übertragung muss also wiederholt werden.

1010 00011101 00000100 11000100 01011100 1000

!PLEH

Page 62: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 62 / 63

EBCDIC-Code

Eine Erweiterung des BCD-Codes ist der von IBM entwickelte EBCDIC-Code(Extended Binary Decimal Interchange Code), der ebenfalls 8 Bit lang ist.

Eine Ziffer wird dargestellt als 1111 gefolgt von ihrer BCD-Darstellung.

Probleme:� Der EBCDIC-Code wird nur von IBM verwendet und unterstützt nicht den gleichen

Zeichensatz wie ASCII - die Darstellungen sind also nicht kompatibel.� Es gibt regional unterschiedliche Versionen des Codes: Ein europäischer EBCDIC-

Code ist z.B. nicht mit dem asiatischen kompatibel, d.h. dass selbst IBM-Mainframes untereinander Kommunikationsprobleme haben können.

Beispiel 6.30: EBCDIC-Codierung einer Ziffer

Die Ziffer 6 wird codiert als 1111 0110.

Page 63: Kapitel 6 Darstellung von Daten im Rechner - RWTH Aachen · Mit n=4 Bits sind im Zweier-Komplement die Zahlen von -8 bis +7 darstellbar. Addiert man nun die Zahlen 5 und 4, so erhält

Kapitel 6: Darstellung von Daten im Rechner Seite 63 / 63

Zusammenfassung

Darstellung (negativer) Zahlen:� Vorzeichen/Betrag

� Einer- und Zweierkomplement� BCD

Darstellung reeller Zahlen� Festkomma

� Gleitkomma• Excess-128-Darstellung

• IEEE

Rechnen mit den DarstellungenDarstellung von Zeichen� 6-Bit

� 8-Bit:• ASCII• EBCDIC


Recommended