Technische Grundlagen der Informatik WS 2008/2009 15. Vorlesung Klaus Kasper WS 2008/2009 Technische Grundlagen der Informatik 1 Inhalt • Wiederholung – 2er-Komplement 2 K l – Overflow – Little Endian / Big Endian • Gleitkommadarstellung – Konstruktion – Normalisierte / denormalisierte Zahlen WS 2008/2009 Technische Grundlagen der Informatik 2 Zahlendarstellung WS 2008/2009 Technische Grundlagen der Informatik 3 Arithmetik • Die zentrale Aufgabe von Computern ist die Ausführung von arithmetischen p auf den codierten Operationen Nachrichten. • Es gilt nun eine Darstellung zu finden finden, die für Berechnungen in Maschinen besonders vorteilhaft ist. WS 2008/2009 Technische Grundlagen der Informatik 4 Arithmetische Operationen • • • • • Ergebnis g der Multiplikation p von136 mit 14? (136)10*(14)10 = (1904)10 Für welche Basis gilt: 136*14 136 14 = 2303 (136)7*(14)7 = (2303)7 Für die Durchführung arithmetischer Operationen muss die verwendete Basis bekannt sein sein. • Weiterhin können bestimmte Konventionen der Darstellung verabredet werden werden, die ebenfalls bekannt sein müssen. WS 2008/2009 Technische Grundlagen der Informatik 5 Umrechnung (235)10 = ?2 235 : 2 = 117,Rest 117 Rest 1 117 : 2 = 58, Rest 1 58 : 2 = 29 29, R Restt 0 29 : 2 = 14, Rest 1 14 : 2 = 7, Rest 0 7 : 2 = 3,, Rest 1 3 : 2 = 1, Rest 1 1: 2 = 0, 0 Rest 1 Test: 1+2+8+32+64+128 3 = 235 3 11101011 WS 2008/2009 Technische Grundlagen der Informatik 6 Elementare Zahlenmengen • Natürliche Zahlen (positive ganze Zahlen) • Ganze Zahlen (positive und negative ganze Zahlen) • Rationale Zahlen (gebrochene Zahlen) • Reelle Zahlen (gemischt gebrochene Z hl ) Zahlen) WS 2008/2009 Technische Grundlagen der Informatik 7 Zahlen in Rechnern • Integer-Zahlen (natürliche und ganze Z hl ) Zahlen) • Festkomma Festkomma-Zahlen Zahlen (rationale und reelle Zahlen mit eingeschränktem Wertebereich) • Gleitkomma-Zahlen (rationale und reelle Zahlen mit erweitertem Wertebereich) WS 2008/2009 Technische Grundlagen der Informatik 8 Wertebereiche von IntegerZ hl Zahlen • 8 Bit: -128 … 127 • 16 Bit: -32768 … 32767 • 32 Bit: -2 2 147 483 648 … 2 147 483 647 • 64 Bit: Dezimalzahl mit 19 Ziffern, ca. 1019 WS 2008/2009 Technische Grundlagen der Informatik 9 Was ist die Differenz? ∞ Z = ∑ xiY i a= i =0 WS 2008/2009 Technische Grundlagen der Informatik ∞ ∑ zb i =−∞ i i 10 Darstellung positiver Festkommazahlen allgemeine g Form: a= ∞ i z b ∑ i i=−∞ Verwendung von n+1 Bits für Vorkommastellen und m Bits für Nachkommastellen: a= i =n ∑ i =− m zi bi n −1 −1 = znb + zn −1b ... z1b + z0 + z−1b + ... z− mb n −m Es ist Konvention Konvention, die Ziffern mit absteigendem Index i als Liste darzustellen und zwischen z0 und z-1 ein Komma einzufügen. WS 2008/2009 Technische Grundlagen der Informatik 11 Beispiel Verwendung von n+1 Bits für Vorkommastellen und m Bits für Nachkommastellen: a= i =n ∑ i =− m zi bi = znb n + zn −1b n −1... z1b + z0 + z−1b −1 + ... z− mb − m −3 −1 10011012 = 2 + 2 + 2 + 2 1001,101 0 3 = 0,125 + 0,5 + 1 + 8 = 9,62510 WS 2008/2009 Technische Grundlagen der Informatik 12 Verschiedene Darstellungen von Integer-Zahlen g Am Beispiel: 4 bit WS 2008/2009 Technische Grundlagen der Informatik 13 Integer-Zahlen (ohne Vorzeichen) WS 2008/2009 Technische Grundlagen der Informatik 14 Integer-Zahlen (Vorzeichen-Betrags-Darstellung) Most Significant Bit (MSB) d fi i t d definiert das V Vorzeichen. i h g Vorzeichenbit muss gesondert ausgewertet werden. Es existiert eine positive und eine negative Darstellung der Null. Wertebereich: −2 WS 2008/2009 n −1 Technische Grundlagen der Informatik +1 ≤ Z ≤ 2 n −1 −1 15 Integer-Zahlen g ((Binaryy Offset)) Der kl D kleinst i t mögliche ö li h W Wertt wird mit 0000… und der größt mögliche Wert wird mit 1111… dargestellt. Wertebereich: −2 WS 2008/2009 n −1 Technische Grundlagen der Informatik ≤Z ≤2 n −1 −1 16 Integer-Zahlen g ((1er-Komplement) p ) Most Significant Bit (MSB) d fi i t d definiert das V Vorzeichen. i h positive Zahl: MSB = 0, 3 niederwertigen Bits werden wie gewohnt ausgee tet wertet negative Zahl: MSB = 1, 3 niederwertigen Bits werden invertiert und anschließend ausgewertet Wertebereich: −2n −1 + 1 ≤ Z ≤ 2n −1 − 1 WS 2008/2009 Technische Grundlagen der Informatik 17 Beispiel 1er-Komplement 1er Komplement -3 soll binär als 1er-Komplement dargestellt werden binäre Darstellung g des Betrags g ((3))10 = ((011))2 Setzen des Vorzeichens und Komplement der Bits ((-3))10 = ((1100))22-1k 1k WS 2008/2009 Technische Grundlagen der Informatik 18 Beispiel 1er-Komplement a=(1001 a (1001,0011) 0011)2-1k 2 1k MSB =1 1 negative Zahl Komplement aller Ziffern muss gebildet werden |a| = (0110,1100)2 |a| = (6,75)10 Vorzeichen hinzufügen a = (-6,75)10 WS 2008/2009 Technische Grundlagen der Informatik 19 Integer-Zahlen (2er-Komplement) Most Significant Bit (MSB) definiert das Vorzeichen. positive Zahl: MSB = 0 0, 3 niederwertigen Bits werden wie g gewohnt ausgeg wertet negative Zahl: MSB = 1, 3 niederwertigen i d ti Bit Bits werden invertiert, 1 addiert und anschließend ausgewertet Wertebereich: −2 WS 2008/2009 n −1 Technische Grundlagen der Informatik ≤Z ≤2 n −1 −1 20 Vorteile 2er-Komplement Darstellung • Es existiert nur eine Null. • Das Vorzeichenbit muss für Addition gesondert ausund Subtraktion nicht g gewertet werden. • Signifikante Vereinfachung der Berechnung. • 2er-Komplement 2er Komplement wird in der Praxis fast ausschließlich eingesetzt. WS 2008/2009 Technische Grundlagen der Informatik 21 Beispiel 2er-Komplement Zu berechnen: (6)10-(1)10 = (6)10 + (-1)10 = (5)10 (6)10: (0110)2 -1: Betrag 001, invertiert 110, 1 addiert 111 (-1)10: (1111)2-2k 0 1 1 0 + 1 1 1 1 Ergebnis: (0101)2-2k = (5)10 C 1 1 0 1 0 1 0 1 WS 2008/2009 Technische Grundlagen der Informatik 22 Beispiel 2er-Komplement Zu berechnen: (4)10 + (5)10 = (9)10 (4)10: (0100)2 (5)10: (0101)2 0 1 0 0 Ergebnis: (1001)2-2k = (-7)10 + 0 1 0 1 0 1 0 0 1 0 0 1 WS 2008/2009 Technische Grundlagen der Informatik Overflow 23 Beispiel 2er-Komplement Zu berechnen: (3)10-(6)10 = (-3)10 (3)10: (0011)2 -6: 6: Betrag 110 110, invertiert 001 001, 1 addiert 010 ((-6))10: ((1010))22-2k 2k 0 0 1 1 + 1 0 1 0 0 0 1 0 1 1 0 1 WS 2008/2009 101 invertiert 010 101, 010, 1 addiert 011 Ergebnis: g ((1101))2-2k = ((-3))10 Technische Grundlagen der Informatik 24 Überlauf (Overflow, OV) Ein Überlauf entsteht, wenn bei Operationen von 2er-Komplement-Zahlen plement Zahlen der Wertebereich überschritten wird. wird Ein Überlauf liegt dann vor, wenn beide Summanden ein gleiches l i h V Vorzeichen i h h haben b und dd das E Ergebnis b i ein i anderes. d WS 2008/2009 Technische Grundlagen der Informatik 25 Beispiel 2er-Komplement Zu berechnen: (-6)10-(7)10 = (-6)10 + (-7)10 = (-13)10 (-6)10: (1010)2-2k (-7)10: (1001)2-2k 1 0 1 0 Ergebnis: (0011)2-2k = (3)10 + 1 0 0 1 Overflow 1 0 0 0 1 0 0 1 1 WS 2008/2009 Technische Grundlagen der Informatik 26 OV-Tabelle Addition 2er 2er-Komplement Komplement Summand S d A B + + + + + + + + WS 2008/2009 - Summe S Y + Flag Fl OV 0 + + 1 0 - 0 0 0 + - 1 0 Technische Grundlagen der Informatik Carry (VZ) C Cin Cout 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 27 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 d d der niedrigsten i d i t Ad Adresse ((„little littl endian“) di “) gespeichert i h t wird. id Beispielsweise Speicherung eines 4 Byte Integer: MSB Æ Byte3 Byte2 Byte1 Byte0 Å LSB Speicheradresse BasisAdresse+0 as s d esse 0 BasisAdresse+1 BasisAdresse+2 BasisAdresse+3 Little Endian Byte0 yte0 Byte1 Byte2 Byte3 Little Endian: PC (Intel, (Intel AMD), Apple (Intel), ... WS 2008/2009 Big Endian Byte3 yte3 Byte2 Byte1 Byte0 Big Endian: Apple (Motorola), Sun, … Technische Grundlagen der Informatik 28 Beispiel: -96 96 000 0000 0000 0000 FF A0 A0 FF 128 64 32 16 8 4 2 1 000 0000 0110 0000 Betrag 111 1111 1001 1111 1er Komplement 1er-Komplement 111 1111 1010 0000 2er-Komplement 2er Komplement 1111 1111 1010 0000 WS 2008/2009 Vorzeichen Technische Grundlagen der Informatik 29 Hex-Editor Hex Editor auf einem PC (Intel) Hex-Darstellung H D t ll in einem PC WS 2008/2009 IInterpretation t t ti als l signed 2 Byte Integer 4F 00 79 FF FF -1 1 A1 FF -95 Technische Grundlagen der Informatik 30 Fazit: Integer Integer-Zahlen Zahlen • Unmittelbare Interpretierbarkeit der Darstellung ist für die Verwendung in Rechnern von geringer Bedeutung Bedeutung. • Zentrale Bedeutung haben die Vereinfachung von arithmetischen ith ti h O Operationen ti und d eine i weitgehende Absicherung gegen Fehler wie Üb l f Überlauf. • Optimale Darstellung hängt vom konkreten Einsatz und den Anforderungen ab. WS 2008/2009 Technische Grundlagen der Informatik 31 Darstellung gg gebrochener Zahlen allgemeine g Form: a= ∞ i z b ∑ i i=−∞ Verwendung von n+1 Bits für Vorkommastellen, m Bits für Nachkommastellen und 1 Bit für Vorzeichen: a= i =n ∑ i =− m zi bi n −1 −1 = znb + zn −1b ... z1b + z0 + z−1b + ... z− mb n −m 2er-Komplement p Darstellung: g MSB zeigt g das Vorzeichen an Auswertung MSB = 1: negative Zahl; Betrag wird komplementiert; im LSB wird 1 hinzuaddiert WS 2008/2009 Technische Grundlagen der Informatik 32 Übung Gesucht ist eine gebrochene Zahl a in Dezimal-Darstellung, die als 2er-Komplement folgendermaßen codiert ist: a = (1001,1100) 2− 2 k Da MSB=1 handelt es sich um eine negative Zahl und die Bits sind zu komplementieren: (0110, 0011) Außerdem muss das LSB um 1 erhöht werden a = (0110, (0110 0100) 2 Umwandlung ins Dezimalsystem: WS 2008/2009 a = (−6, 25)10 Technische Grundlagen der Informatik 33 Festkomma Darstellung Festkomma-Darstellung • Verwendung von n+1 Vorkommastellen und m Nachkommastellen zur Darstellung Darstellung. • Bedingt durch die Reservierung von m Bit für Nachkommastellen ist das Intervall zwischen größter und kleinster darstellbarer Zahl sehr kl i klein. • Wie könnte es vergrößert werden? • Durch D h eine i R Reduktion d kti d der Bit fü für Nachkommastellen. • Bessere Lösung: Gleitende Position des Binärkommas. WS 2008/2009 Technische Grundlagen der Informatik 34 Gleitkomma-Darstellung g • Anforderung: g Für betragsmäßig g gg große Zahlen soll die Anzahl der Nachkommastellen reduziert werden und bei betragsmäßig g g kleinen Zahlen soll die Zahl der Vorkommastellen reduziert werden. • Bei der Gleitkomma-Darstellung (engl (engl.:: floating point representation) wird die Zahl a mit Hilfe der Mantisse m und dem Exponenten e zu einer Basis b dargestellt. WS 2008/2009 Technische Grundlagen der Informatik 35 Beispiel p −123 i 10 Mantisse: -123 123 −7 = −0, 0 0000123 Exponent: -7 7 Basis: 10 Alternative Darstellungen −6 −12,3 i 10 = −1, 23 i 10 −5 keine Eindeutigkeit in der Darstellung WS 2008/2009 Technische Grundlagen der Informatik 36 Übung Wie viele Nachkommastellen hat 1,25 * 10-2? Wie viele Nachkommastellen hat 1,25 * 102? 1,25 * 10-2 = 0,0125 1,25 * 102 = 125,0 WS 2008/2009 Technische Grundlagen der Informatik 37 Normalisierte Gleitkommazahlen In der normalisierten Darstellung hat die Mantisse exakt eine Vorkommastelle. ± m0 , m1 ... m p −1 i b e , wobei m0 = 1 Für die Darstellung der Mantisse wird eine feste Zahl von Stellen verabredet. Für den Fü d E Exponenten t wird i d ein i W Wertebereich t b i h [emin,emax] verabredet. WS 2008/2009 Technische Grundlagen der Informatik 38 Übung g Annahmen: Wir haben eine normalisierte Darstellung. Die Mantisse hat 2 Nachkommastellen in binärer Darstellung. Der Exponent hat 3 bit inklusiv Vorzeichen. Als Basis wird 10 gewählt. Berechnen Sie für benachbarte Zahlen: - das betragsmäßig kleinste Intervall. - das betragsmäßig größte Intervall. 0,25 * 10-3 = 0,00025 0 25 * 103 = 250 0,25 WS 2008/2009 Technische Grundlagen der Informatik 39 Darstellung der Null? • Auf Grund der Verabredung für die Mantisse kann m = 0,0 nicht dargestellt werden. • Daher wird die Null folgendermaßen dargestellt: 10ib 1, WS 2008/2009 emin i −1 Technische Grundlagen der Informatik 40 Übung Notieren N ti Si Sie bitt bitte di die normalisierten li i t Gl Gleitkommazahlen, itk hl die auf der Basis der bisherigen Ausführungen bei Verwendung von 2 Nachkommabits (x,xx) (x xx) für die Mantisse, Mantisse emin=-1, emax=2 und b=2 dargestellt werden können. Stellen Sie die Liste bitte in Dezimaldarstellung auf. 1,00*2-2 0 1,00*21 2 -1 , 1,00*2 0,5 , 1 2,5 , , 1,01*2 1,01*2-1 0,625 1,10*21 3,0 1,10*2-1 0,75 1,11*21 1,11*2-1 0,875 1,00*22 4 1,00*20 1,0 1,01*22 5 1,01*20 1,25 1,10*22 6 1,10*20 1,5 1,11*22 1,11*2 1 11*20 1 75 1,75 WS 2008/2009 3,5 Problem? 7 Technische Grundlagen der Informatik 41 Denormalisierte Zahlen 1,00*20 – 1,11*2-1 = ? In unserem Zahlensystem lautet das Ergebnis: 1,00 * 2-2 Anweisung: if (X != Y) then Z = 1/(X 1/(X-Y) Y) 0 und Y=1,11*2 -1? Was p passiert für den Fall X=1,00*2 , , Laufzeitfehler, da durch 0 geteilt wird! Für e=emin wird m0=0 zugelassen. Die so eingeführten Zahlen werden als denormalisierte oder subnormale Zahlen bezeichnet. bezeichnet WS 2008/2009 Technische Grundlagen der Informatik 42 Übung (erweitert) Notieren Sie bitte die normalisierten und denormalisierten Gleitkommazahlen,, die auf der Basis der bisherigen g Ausführungen bei Verwendung von 2 Nachkommabits (x,xx) für die Mantisse, emin=-1, emax=2 und b=2 dargestellt werden können. Stellen S S die Liste bitte in Dezimaldarstellung auf. Sie f WS 2008/2009 Technische Grundlagen der Informatik 43 Erweitertes Beispiel 1,00*2-2 0 1,00*21 2 0,01*2-1 0,125 1,01*21 2,5 0,10*2-1 0,25 1,10*21 3,0 0,11*2-1 0,375 1,11*21 1,00*2-1 0,5 1,00*22 4 1,01*2-1 0,625 1,01*22 5 1,10*2-1 0,75 1,10*22 6 1,11*2-1 0,875 1,11*22 1,00*2 1 00*20 10 1,0 1,01*20 1,25 1 10*2 1,10 20 15 1,5 1,11*20 1,75 WS 2008/2009 Technische Grundlagen der Informatik 3,5 7 44 Definition eines GleitkommaGleitkomma Zahlensystems • • • • • Basis (base, radix) b >= 2 Mantissenlänge (precision) p >= 2 kleinster Exponent emin < 0 größter Exponent emax > 0 N Normalisierungsindikator li i i dik t d denorm, hierbei handelt es sich um einen W h h it Wahrheitswert t (true (t b d t t dass bedeutet, d denormalisierte Zahlen enthalten sind) WS 2008/2009 Technische Grundlagen der Informatik 45 Beispiele • Ei Ein Gl Gleitkomma-Zahlensystem itk Z hl t kkann durch F(b,p,emin,emax,denorm) definiert werden. d • Intel x86-Prozessoren einfach genau: g F(2,24,-126,127,true) • Intel x86-Prozessoren x86 Prozessoren doppelt genau: F(2,53,-1022,1023,true) • Die beiden Beispiele folgen der IEEE Norm 754. WS 2008/2009 Technische Grundlagen der Informatik 46 IEEE, single g p precision I • F(2,24,-126,127,true) ( , , , , ) • ca. 4,26 * 109 normalisierte und ca. 1,7 * 107 denormalisierte Gleitkommazahlen können dargestellt werden , * 10-38 • kleinster Wert ca. 1,18 • größter Wert ca. 3,40 * 1038 • IEEE 754 Norm für Gleitkommazahlen wurde erst im Jahr 1989 verabschiedet. • Sie ist als IEC 559:1989 auch internationale Norm. WS 2008/2009 Technische Grundlagen der Informatik 47 IEEE, single precision II Z = ( −1)S iM i2E −O , wobei O = 127 WS 2008/2009 Technische Grundlagen der Informatik 48 IEEE single precision (Beispiel) IEEE, Beispiel: 45.625 45 62510 • Fraktion f = 01101101 (beachte 1.01101101) bit 0-22 • dargestellter Exponent e = 10000100 bit 23 23-30 30 • Vorzeichen s = 0 bit 31 Damit ist die Darstellung im IEEE 754-Format mit einfacher Genauigkeit (single precision): 0100 0010 0011 0110 1000 0000 0000 0000 WS 2008/2009 Technische Grundlagen der Informatik 49 Rundung • In der Mathematik sind die reellen Zahlen unendlich. dli h JJedes d Gl Gleitkomma-Zahlensystem itk Z hl t hat endlich viele Elemente. • Daher müssen Verfahren zur Rundung realisiert werden, nicht nur für Zahlen die kleiner oder größer sind als die Extremwerte. g der Rundung g resultiert • Bei der Durchführung ein Rundungsfehler. WS 2008/2009 Technische Grundlagen der Informatik 50