Upload
damian-dunkle
View
216
Download
3
Embed Size (px)
Citation preview
1
Vertiefungsstoff zum Thema „Darstellung von Zahlen“
Addition von Zahlen in BCD-Kodierung
Einerkomplementdarstellung von ganzen Zahlen
Gleitpunktdarstellung nach dem IEEE-754-Standard
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
......
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!
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.
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.
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.
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
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.
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
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
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!
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:
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
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 ).
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