15
1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung nach dem IEEE-754-Standard

1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

Embed Size (px)

Citation preview

Page 1: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

1

Vertiefungsstoff zum Thema „Darstellung von Zahlen“

Addition von Zahlen in BCD-Kodierung

Einerkomplementdarstellung von ganzen Zahlen

Gleitpunktdarstellung nach dem IEEE-754-Standard

Page 2: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

2

Rechnen mit BCD-codierten Zahlen

Idee Verwende zur Codierung der Ziffern 0, ..., 9

eine Tetraden-Codierung, d.h., codiere jede Dezimalziffer mit einem 4 Bitwort:

cBCD : {0, ..., 9} B4

Mehr-zifferige Dezimalzahlen werden dann ziffernweise mit der natürlichen Fortsetzung c*BCD codiert:

Beispiel: c*BCD(13) = cBCD(1) cBCD(3)

= 0001 0011Frage

Wie rechnet (addiert) man mit BCD-codierten Zahlen?

Antwort: siehe nächste Folie

23 22 21 10 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 0

1 1 1 1

0123456789

......

Page 3: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

3

Mit der BCD-Codierung werden mehrstellige Dezimalzahlen ziffernweise codiert, wobei die Codierung der Ziffern {0, 1, ..., 9} wie in der Tabelle angegeben erfolgt.

Rechenbeispiel: Geben Sie die BCD-Codierung der beiden Dezimalzahlen 3617 und 5438 an. Die Codierung erfolgt ziffernweise.

3 6 1 70011 0110 0001 0111

5 4 3 80101 0100 0011 1000

Wie addiert man BCD-codierte Zahlen?Idee– Addiere ziffernweise, d.h. schreibe die Binärdarstellungen

der Ziffern untereinander und führe Binäraddition durch: (3617)10 = 0011 0110 0001 0111

+ (5438)10 = 0101 0100 0011 1000

1000 1010 0100 1 1111

– Problem: Behandlung von Überläufen! Binärwörter 1010 und 1 1111 sind nicht im BCD!

Page 4: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

4

Addition von BCD-codierten Zahlen – Addiere ziffernweise, d.h. schreibe die Binärdarstellungen

der Ziffern untereinander und führe Binäraddition durch: (3617)10 = 0011 0110 0001 0111

+ (5438)10 = 0101 0100 0011 1000

1000 1010 0100 1 1111

Ideen zur Behandlung von Überläufen:

Ansatz 1– Lege eine Tabelle an, in der man nachschaut, wie die korrekte Ziffer bei einem

der möglichen „pathologischen“ Fälle aussieht. (Es gibt insgesamt 6 solcher Fälle.)

Im Beispiel gibt es zwei pathologische Fälle:1) Zwei Binärziffern addieren sich zu 1010, dann lautet die richtige Ziffer der Summe 0000

jedoch entsteht ein Übertrag von 1, der zur Summe der nächsten Zifferaddition dazugezählt werden muss.

2) Zwei Binärziffern addieren sich zu 1 1111, dann lautet die richtige Ziffer der Summe 0101. Der Übertrag von 1 wird zur Summe der nächsten Zifferaddition dazugezählt.

Page 5: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

5

Addition von BCD-codierten Zahlen (3617)10 = 0011 0110 0001 0111

+ (5438)10 = 0101 0100 0011 1000

1000 1010 0100 1 1111

Ideen zur Behandlung von Überläufen:

Ansatz 2: – Untersucht man die möglicherweise auftretenden 6 pathologischen Fälle, so erkennt man,

dass man die jeweils richtige Ziffer durch Addition des Korrekturmusters 0110 erhält. Das heißt, wenn immer bei der Addition eine Summe S = s4s3 s2s1 > 1001 auftritt, addiert man zu S zunächst das Korrekturmuster 0110. Dies ergibt dann die richtige Ziffernfolge z4z3 z2z1 sowie einen Übertrag von 1.

Im Beispiel: 0110 0100 1010 somit ist s4s3 s2s1 größer als 1001 so dass das Korrekturmuster 0110 aufaddiert werden muss: 1010

01101 0000 Wie man sieht, erhält man die richtige Binärzahl 0000 = (0)10

sowie einen Übertrag von 1 für die nächste Stelle.

Page 6: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

6

Addition von BCD-codierten Zahlen (3617)10 = 0011 0110 0001 0111

+ (5438)10 = 0101 0100 0011 1000

1000 1010 0100 1 1111

Addition der Binärcodierungen 0111 und 1000Im Beispiel:

0111 1000 1 1111 somit ist s4s3 s2s1 größer als 1001 so dass das Korrekturmuster 0110 aufaddiert

werden muss.Es ist jedoch bereits ein Überlauf entstanden, so dass eine 5-stellige Binärzahl vorliegt.In diesem Fall wird das Korrekturmuster nur zu den Stellen s4s3 s2s1 addiert

Summe: 1 1111

1111 5te Stelle ignorieren! 0110 Korrekturmuster zu s4s3 s2s1 addieren.

1 0101 Wie man sieht, erhält man die richtige Binärzahl 0101 = (5)10

sowie einen Übertrag von 1 für die nächste Stelle.

Page 7: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

7

Addition von BCD-codierten Zahlen insgesamt ergibt sich somit folgende Rechnung:

(3617)10 = 0011 0110 0001 0111

+ (5438)10 = 0101 0100 0011 1000

1 1111 (7+8) 1111 betrachte nur 4 Stellen 0110 Korrekturmuster aufaddieren

1 0101 korrekte Ziffer mit Überlauf0100 (3+1)0001 plus Überlauf 0101 korrekte Ziffer, kein Überlauf

1010 (4+6)0110 Korrekturmuster aufaddieren

1 0000 korrekte Ziffer mit Überlauf 1000 (3+5) 0001 plus Überlauf 1001 korrekte Ziffer, kein Überlauf

Somit ergibt sich: ( 1001 0000 0101 0101 )BCD

c) BCD -> ( x )10

( 9 0 5 5 )10

Page 8: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

8

Weitere Ansätze zur Codierung von ZiffernZiffern-Codierungen: Sind spezielle n-Bit-Codierungen c : A Bn. Sie wurden entwickelt,

um arithmetische Operationen auf codierten Wörtern zu unterstützen. 4-Bit reichen zur Darstellung von 10 Ziffern aus.

Spezielle Codes zur Zifferndarstellung BCD-Codierung: Tetraden-Codierung, d.h., c : A B4

EBCDIC (Extended Binary Coded Decimal Interchange Code), ein auf 8-Bit erweiterter BCD-Code gemäß: cEBCDIC(i) = "1111" + cBCD(i) = 1111cBCD(i)

Aiken-Codierung: Tetraden-Codierung mit Darstellung jeder Ziffer d {0, ..., 9} in 4 Bits durch:

- Binärdarstellung von d, für d {0, ..., 4} (also 0000, ...,0100)- Binärdarstellung von d+6, für d {5, ..., 9} (also 1011, ...,1111)

Exzess-3-Codierung: Tetraden-Codierung, Darstellung jeder Zahl z durch Ziffer dz in 4 Bits durch "Dualdarstellung" von z+3.

Page 9: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

9

Zweier-Komplementdarstellung (allgemein)Die Zweierkomplement-Darstellung (in n Stellen) ist die gebräuchlichste interne Darstellung ganzer positiver und negativer Zahlen.

Anmerkung: Negative Werte lassen sich am weitesten links stehenden Bit erkennen. Es gibt nur eine (natürliche) Darstellung der Zahl 0. Darstellung des Zahlenbereichs ist unsymmetrisch zum Nullpunkt.

Definition:Sei A2K,n = {-2n-1, ... , 0, 1, ... , 2n-1-1 } der darzustellende Zahlenbereich.Unter der Zweier-Komplementdarstellung versteht man die Codierung:

C2,n (x) falls 0 x 2n-1

C2K,n (x) = C2,n (2n + x) falls - 2n-1 x 0

Page 10: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

10

Gibt es weitere Komplementdarstellungen ?Ja, z.B. die sog. 1-Komplement-Darstellung (in n Stellen).Die 1-Komplement-Darstellung ist analog zur Zweier-Komplement-Darstellung, jedoch mit dem Unterschied, dass nach der Komplementbildung keine 1 zur Zahl addiert wird.

Anmerkung: Es gibt zwei Darstellungen der Zahl 0 (dadurch symmetrisch zum

Nullpunkt). Überlaufbehandlung erforderlich: muss zum Ergebnis addiert werden. Führendes Bit signalisiert, dass es sich um negative Zahl handelt. Ihr

Betrag lässt sich durch Komplementbildung ermitteln.

Definition:darzustellende Zahlenbereich: A1K,n = { 2n1 + 1, ... , 0, ... , 2n1 1 } Unter der 1-Komplementdarstellung versteht man die Codierung:

C2,n (x) falls 0 x 2n-1

C2Komp (x) = C2,n (2n 1 + x) falls -2n-1 x 0

Page 11: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

11

Addition mit 1-Komplementdarstellung

6 + 6 = 12:

0110 + 0110

1100 = 3

(4 ) + (3) = (7):

1011 + 1100

1 0111+ 11 1000 7

Mit Überlauf:

01

2

3

4

5

677

6

5

4

3

21

0

00000001

0010

0011

0100

0101

011001111000

1001

1010

1011

1100

1101

1110

1111

0

7

4 + 3 = 7:

0100 + 0011

0111 =

Ohne Überlauf:

Die Zahl 0 hat zwei Darstellungen!

Page 12: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

12

Ähnlichkeit der Darstellungsformen am Beispiel

Mit Vorzeichenbit : – 77= 1100 11012

Einerkomplement : – 77= 1011 00102

Zweierkomplement : – 77= 1011 00112c

Die Zahl –7710 soll mit 8 Bit dargestellt werden: (77)10 = (0100 1101)2

Bitweise Komplementbildung

Addition von 1

Mit Vorzeichenbit: – 20= 1001 01002

Einerkomplement: – 20= 1110 10112

Zweierkomplement: – 20= 1110 01002c

Bitweise Komplementbildung

Addition von 1

Durch die Addition von 1 kann sich das Bitmuster jedoch auch an einer anderen Stelle ändern. Beispiel: Darstellung der Zahl –2010 mit 8 Bit:

Page 13: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

13

Gleitpunkt-Darstellung nach IEEE-754-Standard

Gleitpunktdarstellung nach IEEE-754

Vorzeichen V: 1 Bit für Vorzeichen der Mantisse

Charakteristik c: Exzess-q-Darstellung des Exponenten exp = c-q mit q = 2(nk1) – 1

Mantisse m: Mit Werten zwischen 1 m|2. Wegen Normierung auf Format 1.xxx....xxx wird die führende 1 nicht gespeichert! m -> m'.

dargestellte Zahl x = (-1)V (1 + m') 2(cq)

V Charakteristik c Betrag der Mantisse m (1 m|2 )

n-1 | n-2 | k-2 0

Die Berufsvereinigung IEEE (Institute of Electrical and Electronics Engineers) hat einen Standard verabschiedet, die in den meisten Rechnern heute verwendet wird: IEEE-754-Standard für n-Bit-GPZ

Page 14: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

14

Gleitpunkt-Darstellung nach IEEE-754-Standard

Einfache Genauigkeit

=> 8-Bit Charakteristik: Exponent zwischen -127 und 128 (entspricht dem Dezimalbereich von 1039 ... 1039 )

und (23+1)-Bit Mantisse: Werte zwischen 1 und 2- 223 (~ 107 ).

V Charakteristik Betrag der Mantisse m (1 m2)

31 | 30 23 | 22 0

Doppelte Genauigkeit

V Charakteristik Betrag der Mantisse m (1 m2)

63 | 62 52 | 51 0

11-Bit Charakteristik: Exponent zwischen -1023 und 1024 (~10307...10307) (52+1)-Bit Mantisse: Werte zwischen 1 und 2- 252 (~ 1015 ).

Page 15: 1 Vertiefungsstoff zum Thema „Darstellung von Zahlen“ Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung

15

Gleitpunkt-Darstellung nach IEEE-754-Standard

Erweiterte Genauigkeit (Datentyp „extended“ )

15-Bit Charakteristik: Exponent zwischen 214 + 1 und 214

(64+1)-Bit Mantisse: Werte zwischen 1 und 2- 264

V Charakteristik Betrag der Mantisse m (1 m2)

79 | 78 64 | 63 0

Sonderfälle im IEEE-754-StandardNormalisierte Zahl: 0 exp 255 mit beliebiger Mantisse mDenormalisierte Zahl: exp =0 mit m 0 beliebigDarstellung der Zahl 0 durch: c = 0 und m =0

Darstellung von „Unendlich“ durch: c maximal und m = 0Darstellung von „Not a Number“ (NaN): c maximal und m 0