Rechnergrundlagen SS 27 4. Vorlesung
Inhalt Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag 2er-Komplement BCD Addition und Subtraktion binär dargestellter Zahlen Carry und Overflow Little Endian / Big Endian Umrechnung in eine binäre Darstellung
Integer-Zahlen (Signed Magnitude) Most Significant Bit (MSB) definiert das Vorzeichen. Vorzeichenbit muss gesondert ausgewertet werden. Es existiert eine positive und eine negative Darstellung der Null. Wertebereich: + n n 2 Z 2
Integer-Zahlen (2er-Komplement) Most Significant Bit (MSB) definiert das Vorzeichen. positive Zahl: MSB =, 3 niederwertigen Bits werden wie gewohnt ausgewertet negative Zahl: MSB =, 3 niederwertigen Bits werden invertiert, addiert und anschließend ausgewertet Wertebereich: n n 2 Z 2
Vorteile 2er-Komplement Darstellung Es existiert nur eine Null. Das Vorzeichenbit muss für Addition und Subtraktion nicht gesondert ausgewertet werden. Signifikante Vereinfachung der Berechnung. 2er-Komplement wird in der Praxis fast ausschließlich eingesetzt.
Beispiel 2er-Komplement Zu berechnen: (6) -() = (6) + (-) = (5) (6) : () 2 -: Betrag, invertiert, addiert (-) : () 2-2k + C Ergebnis: () 2-2k = (5)
Beispiel 2er-Komplement Zu berechnen: (4) + (5) = (9) (4) : () 2 (5) : () 2 + C Ergebnis: () 2-2k = (-7) Overflow
Beispiel 2er-Komplement Zu berechnen: (3) -(6) = (-3) (3) : () 2-6: Betrag, invertiert, addiert (-6) : () 2-2k +, invertiert, addiert Ergebnis: () 2-2k = (-3)
Überlauf (Overflow, OV) Ein Überlauf entsteht, wenn bei Operationen von 2er-Komplement-Zahlen der Wertebereich überschritten wird. Ein Überlauf liegt dann vor, wenn beide Summanden ein gleiches Vorzeichen haben und das Ergebnis ein anderes.
Beispiel 2er-Komplement Zu berechnen: (-6) -(7) = (-6) + (-7) = (-3) (-6) : () 2-2k (-7) : () 2-2k + Ergebnis: () 2-2k = (3) Overflow
OV-Tabelle Addition 2er-Komplement Carry (VZ) Flag Summe Summand + - - - - - - + - + + - - - + + - + - + + + + + C out C in OV Y B A
Tabelle
Übung Bitte berechnen Sie: + Bitte interpretieren Sie das Ergebnis unter der Annahme, dass es sich um eine 2er-Komplement Darstellung handelt. Tritt ein Overflow auf?
Little Endian Big Endian Bei der Interpretation, z.b. einer Integer-Zahl, ist zu unterscheiden, ob das least significant Byte an der höchsten Adresse ( big endian ) oder der niedrigsten Adresse ( little endian ) gespeichert wird. Beispielsweise Speicherung eines 4 Byte Integer: MSB Byte3 Byte2 Byte Byte LSB Speicheradresse BasisAdresse+ BasisAdresse+ BasisAdresse+2 BasisAdresse+3 Little Endian: PC (Intel, AMD), DEC, Little Endian Byte Byte Byte2 Byte3 Big Endian Byte3 Byte2 Byte Byte Big Endian: Apple (Motorola), Sun,
Beispiel: -96 28 64 32 6 8 4 2 FF A A FF Betrag er-komplement 2er-Komplement Vorzeichen
Hex-Editor auf einem PC (Intel) Hex-Darstellung in einem PC 4F FF FF A FF Interpretation als signed 2 Byte Integer 79 - -95
Binary Coded Decimal (BCD)
BCD Code I Binary Coded Decimal (BCD) jede Dezimalziffer wird mit 4 Bit dargestellt jede Einheit mit vier binären Stellen wird als Tetrade (Vierergruppe) bezeichnet von insgesamt 6 möglichen Tetraden werden nur genutzt die nicht genutzten werden Pseudo- Tetraden genannt
BCD Code II 9 8 7 6 5 4 3 2 2 2 2 2 2 3 Dezimal Tetraden Pseudotetraden
Beispiel 2 6 9 269
BCD-Addition BCD-Addition wird für jede Tetrade durchgeführt. Eine übergelaufene Tetrade muss durch Addition von 6 korrigiert werden. Eine Pseudotetrade (als Ergebnis einer Stellen oder Korrekturaddition) muss durch Addition von 6 korrigiert werden.
Beispiele Übertrag Pseudotetrade 8 + 9 = 7 7 + 6 = 3
BCD-Addition: Übung 68 + 35 = 3
BCD-Subtraktion Subtraktion wird durch Addition des Zehnerkomplements der zu subtrahierenden Zahl realisiert. Pseudotetraden müssen korrigiert werden. Ergibt sich in die 5. Stelle einer Tetrade kein Übertrag, so ist das Ergebnis eine negative Zahl. In diesem Fall muss für die Ermittlung des Betrags wiederum das Zehnerkomplement gebildet werden.
Beispiel : Subtraktion 9 7 = 2 er-komplement für 7: 3
Beispiel 2: Subtraktion 7 9 = -2 er-komplement für 9: Kein Übetrag in die 5. Stelle negative Zahl er-komplement 8: 2 Ergebnis: -2
3-Exzess Code, Aiken Code Beim 3-Exzess Code werden die ersten und letzten drei Tetraden der 6 möglichen nicht verwendet. Die Tetrade kommt nicht vor. Das Neuner-Komplement kann durch einfache Inversion gebildet werden. Beim Aiken Code werden die ersten und die letzten 5 Tetraden verwendet. Das Neuner- Komplement kann durch einfache Inversion bestimmt werden.
Gray Code Beim Gray Code wird beim Übergang von einertetrade zur nächst höheren Tetrade nur ein Bit geändert. Derartige Codes werden als einschrittig oder progressiv bezeichnet. 4 3 2 Y A R G 9 8 7 6 5 Y A R G
Fazit: Integer-Zahlen Unmittelbare Interpretierbarkeit der Darstellung ist für die Verwendung in Rechnern von geringer Bedeutung. Zentrale Bedeutung haben die Vereinfachung von arithmetischen Operationen und eine weitgehende Absicherung gegen Fehler wie Überlauf. Optimale Darstellung hängt vom konkreten Einsatz und den Anforderungen ab.
Darstellung gebrochener Zahlen allgemeine Form: a = i= zb i i Verwendung von n+ Bits für Vorkommastellen, m Bits für Nachkommastellen und Bit für Vorzeichen: a = i= n i= m zb i i = zb + z b... zb+ z + z b +... z b n n m n n m 2er-Komplement Darstellung: MSB zeigt das Vorzeichen an Auswertung MSB = : negative Zahl; Betrag wird komplementiert; im LSB wird hinzuaddiert
Übung Gesucht ist eine gebrochene Zahl a in Dezimal-Darstellung, die als 2er-Komplement folgendermaßen codiert ist: a = (,) 2 2k Da MSB= handelt es sich um eine negative Zahl und die Bits sind zu komplementieren: (, ) Außerdem muss das LSB um erhöht werden a = (,) 2 Umwandlung ins Dezimalsystem: a = ( 6,25)
Umrechnung einer Dezimalzahl (235) = (z) 2 235 : 2 = 7,Rest 7 : 2 = 58, Rest 58 : 2 = 29, Rest 29 : 2 = 4, Rest 4 : 2 = 7, Rest 7 : 2 = 3, Rest 3 : 2 =, Rest : 2 =, Rest Test: +2+8+32+64+28 = 235
Regel zur Umrechnung einer Dezimalzahl a/ b = d + r / b 2 2 d / b = d + r / b 2 2... d / b = d + r / b n 2 2 n n 2 d / b = + r / b n 2 n 2 d = n r d = r b + r n n 2 n 2 n... a= r b +...+ r b + r n n 2 2 n i= a= r b i i 2
Hornerschema (4 Ziffern) ( a) = ( r r rr ) 3 2 b = rb + rb + rb + rb 3 2 3 2 = rb + rb + rb+ r 3 2 3 2 = ( rb + rb+ r) b+ r 2 3 2 = (( rb+ r) b+ r) b+ r 3 2
Hornerschema (allgemein) Effiziente Methode zur Umwandlung von Zahlen zur Basis b in das Dezimalsystem. ( rr... rr) = (...(( rb+ r ) b+ r ) b+... + r) b+ r n n b n n n 2 (324) 5 = (( 5 + 3) 5 + 2) 5 + 4 = 24
Umwandlung von Nachkommastellen Regel Übung (,2825) a b= 2 2 n v, a a b= v, a a b= v, a... a b= v, ( a) = (, v v... v ) n n b,2825*2 =,5625,5625*2 =,25,25*2 =,25,25*2 =,5,5*2 =, (,2825) = (,) 2