260 likes | 728 Views
2.Übung Informatik 1 Inhalte: Gleitkommazahlen: Darstellung und arithmetische Operationen Codierung von Zeichenketten Verschiedene Codes. Vorbemerkungen zu nicht ganzzahligen Darstellungen Festkomma-Darstellung Gleitkomma-Darstellung Vorlesung: FK
E N D
2.Übung Informatik 1 • Inhalte: • Gleitkommazahlen: Darstellung und arithmetische Operationen • Codierung von Zeichenketten • Verschiedene Codes Übung Informatik1 für ET und MT
Vorbemerkungen zu nicht ganzzahligen Darstellungen • Festkomma-Darstellung • Gleitkomma-Darstellung • Vorlesung: FK - nur für natürliche und ganze Zahlen (Datentyp Integer) - ganze Zahlen werden formal als Dezimalbrüche geschrieben, indem man hinter das Komma die Ziffer 0 schreibt (z.B. statt 23 23,0) • /ObVo98a/, S.141: • "Allgemein spricht man von einer Festpunkt-Darstellung, wenn eine Zahl durch eine • n-stellige Dual- (bzw. Dezimal-) Zahl (evtl. komplementiert) dargestellt wird, wobei • das Komma an beliebiger, aber fester Stelle angenommen wird." • Praktisch hatte das z.B. bei Mainframes, die Finanzberechnungen durchführen, Bedeutung (generell 2 Stellen hinter dem Komma). Bei modernen Rechner wird die Gleitkomma-Darstellung verwendet, so daß praktisch ein Spezialfall der Festkomma-Darstellung bei der Darstellung der Mantisse der GK-Zahl Verwendung findet. Übung Informatik1 für ET und MT
Gleitkommazahlen (floating-point numbers) Erreichung eines größeren Wertebereichs, allerdings mit geringerer Genauigkeit. Die Zahlen werden halblogarithmisch durch Mantisse und Exponent dargestellt. Durch ANSI und IEEE unter der Bezeichnung ANSI/IEEE 754 - 1985 standardisiert. ZFP = (-1)S * (1.f) * 2C-bias S . . . Vorzeichenbit(s = 0 positiv, s = 1 negativ) 1.F . . . Mantisse (auch Significand) als gemischte Zahl in normalisierter Form angegeben, wird bei Änderung des Exponenten so verschoben, daß die erste Ziffer vor dem Komma die erste von Null verschiedene Binärziffer ist. Da damit der Teil der Mantisse vor dem Komma genau feststeht, wird im GK-Format nur noch der gebrochene Anteil f (fractional part) gespeichert, mit 0 f 1, bzw. 1,0 m 2,0 C . . . Charakteristik (zunächst vorzeichenbehafteter Exponent e wird als sogenannter Biased-Exponent dargestellt, zu ihm wird der Bias-Wert (bias = 127 bzw. bias = 1023) addiert, so daß sich eine vorzeichenlose Zahl C ergibt (mit C = e + bias bzw. e = C - bias). Erlaubt Vergleichsbefehle für ganze Zahlen auf GK-Zahlen anzuwenden! Übung Informatik1 für ET und MT
31 30 . . . 23 22 . . . 0 S 8-BIT Biased- Exponent C 23-Bit-Fraction f S 11-BIT Biased- Exponent C 52-Bit-Fraction f 63 62 . . . 52 51 . . . 0 Zwei Basis-Datenformate definiert: single precision- 32-Bit-Format double precision- 64-Bit-Format Übung Informatik1 für ET und MT
Aufgaben 2. Übung 2.1 Stellen Sie den Wert -3125,9710im Gleitkommaformat von 32 Bit nach Standard IEEE 754 dar! 2.2 Ermitteln Sie für dieses Format, welche betragsgrößte (aber von Unendlich verschiedene) und welche betragskleinste (aber von Null verschiedene) Dezimalzahl darstellbar ist! 2.3 a) Stellen Sie den Wert -8,2510 in einer Gleitkommazahl von 32 Bit nach Std. IEEE 754 dar! b) Was ergibt sich als resultierendes GK-Wort, wenn das GK-Wort nach a) mit folgendem GK-Wort 1111 1111 1000 0000 0000 0000 0000 00002multipliziert wird? 2.4 Bestimmen Sie zu dem Gleitkommawort nach Standard IEEE 754 1100 1000 0101 0000 0000 0000 0000 00002 das wertgleiche Vorzeichen behaftete binäre Festkommawort. 2.5 Was ist ein dichter Code, ein Code "1 aus n" und ein BCD Code? 2.6 Stellen Sie die Zeichenkette ”Informatik I, WS 2008/2009” als ASCII-Code dar, und schreiben Sie das Ergebnis als eine Folge von Hexadezimalzahlen! 2.7 Gegeben sei das folgendermaßen kodierte Maschinenwort: 1100 0101 1000 0111 1000 0101 1001 10012 a) Warum kann keine Kodierung nach dem ISO 7-Bit-Kode (ASCII) vorliegen? b) Interpretieren Sie das Wort hexadezimal als vorzeichenlose Festkommazahl. c) Welcher Dezimalwert wird dargestellt, wenn es sich um ein GK-Wort nach Std. IEEE 754 handelt? d) Wie kann der Computer diese verschiedenen Informationen unterscheiden? Übung Informatik1 für ET und MT
Aufgabe 2.1 Stellen Sie den Wert -3125,9710im Gleitkommafor. von 32 Bit nach Std. IEEE 754 dar! 1. Dezimalzahl in Binärzahl (Mantisse normalisieren, nach Stand.IEEE 754) (1) 2. Berechnung der Charakteristik (Exponent) (2) • Mantisse ganzzahliger Teil: • 3125 = 2048 + 1024 + 32 + 16 +4 +1 • = 1100001101012 • Mantisse gebrochener Teil: • 0,97 = 0,1111100001012 • 0,97 = 0,5+0,25+0,125+0,0625+0,03125+0,0009765625+0,000244140625 • 3125,97 = 110000110101,1111100001012 • normalisieren: • 3125,97 = 1,100001101011111100001012 * 211(immer 1, . . . ) e = 11 • Charakteristik = Exponent + Verschiebekonstante(bias) • C = e + bias • bias = 12710 = 0111 11112 • C = 13810 = 1000 10102 Übung Informatik1 für ET und MT
ANSI/IEEE Std 754-1985 (single precision, 32 Bit) • Vor- Charakteristik Mantisse • zeichen • 11 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 1 0 1 • (31) (30) . . . . . . (23) (22) . . . . . . . . . . . . . . . . . (0) Vorzeichen:0 = “+" und 1 = “–" Charakteristik: C = Exponent E + Verschiebekonstante bias bias = 127 = 7F16 = 011111112 Mantisse (m): wird so normalisiert, daß die führende 1 vor dem Komma steht. z.B.: 1, xxxxxxxxxx Nach Standard 754 wird diese führende 1 der Mantisse weggelassen und dadurch ein Bit für die Darstellung der Mantisse dazugewonnen. Übung Informatik1 für ET und MT
Aufgabe 2.2 • Ermitteln Sie für dieses Format, welche betrags-größte (aber von Unendlich verschiedene) und welche betrags-kleinste (aber von Null verschiedene) Dezimalzahl darstellbar ist! • durch das Weglassen der führenden 1 der Mantisse (m) erhöht sich der Wertebereich um den Faktor 2 • Wertebereich Exponent: • Charakteristik C Exponent • 0000 0000 Emin-1 Nutzung für die Darstellung der Zahl 0 und für sehr kleine nicht normalisierte GK-Zahlen. • 0000 0001 Emin = Cmin - bias (Verschiebekonst.) • = 116 - 7F16 • = - 7E16 • = -12610 • 1111 1110 Emax =Cmax- bias (Verschiebekonst.) • = FE16 - 7F16 • = 7F16 • = + 12710 • 1111 1111 Emax+1 Darstellung von Sonderfällen, wie Division durch 0. Übung Informatik1 für ET und MT
Wertebereich für den Betrag der Mantisse (m): mmin = 1 (alle 23 Bit von m* = 0, es bleibt die weggelassene 1) mmax = 2 – 2-23 (alle 23 Bit von m* = 1, plus die weggelassene 1) Größte positive Zahl: Kleinste positive Zahl: 0 111 1111 0 111 1111 1111 1111 1111 1111 |mmax| * Emax = (2 – 2-23) * 2127 3,4 * 1038 0 000 0000 1 000 0000 0000 0000 0000 0000 normalisiert: |mmin | * Emin = 1 * 2-126 1,2 * 10-38 0 000 0000 0 000 0000 0000 0000 0000 0001 nicht normalisiert: |mmin_a| * Emin = 2-23 *2-126 1,4 * 10-45 Übung Informatik1 für ET und MT
Sonderfälle Darstellung • 1.) Zahl 0 Charakteristik = cmin -1 = 0000 0000 • Mantisse (m*) = alle Bits 0 (Vorzeichen ) • 2.) Zahl Charakteristik = cmax +1 = 1111 1111 • Mantisse (m*) = alle Bits 0 (Vorzeichen ) • 3.) NAN Charakteristik = cmax +1 = 1111 1111 • (Not a Number) Mantisse (m*) 0 (Vorzeichen unbeachtet) • (z.B. Division durch 0, 0x0, 0x ) • 4.) denormalisierte Charakteristik = cmin -1 = 0000 0000 • Gleitkommazahlen Mantisse (m) 0 (im Extremfall m = 0,000...001) • Darstellung sehr kleiner Zahlen möglich • Relativer Fehler wächst bei kleinen Zahlen Übung Informatik1 für ET und MT
Aufgabe 2.3 a • Stellen Sie den Wert -8,2510 in einer Gleitkommazahl von 32 Bit nach Standard IEEE 754 dar! • -8,2510 = - 1000,012 (Normalfall) • = - 1,00001 * 23 • C = bias + e • C = 127 + 3 = 130 = 1000 00102 31 30 22 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Übung Informatik1 für ET und MT
Aufgabe 2.3 b • Was ergibt sich als resultierendes Gleitkommawort, wenn das Gleitkommawort nach a) mit folgendem Gleitkommawort 1111 1111 1000 0000 0000 0000 0000 00002 multipliziert wird? • 1 100 0001 0000 0100 0000 0000 0000 0000 • 1 111 1111 1000 0000 0000 0000 0000 0000 • Multiplikation mit - "Unendlich" ergibt: + "Unendlich" • 1 11111111 000 0000 0000 0000 0000 0000 = - “Unendlich” • 0 11111111 000 0000 0000 0000 0000 0000 = + “Unendlich” • Multiplikation von norm. GK-Zahlen: 1. Multiplikation der Mantissen • 2. Addition der Exponenten • 3. Normalisierung des Ergebnisse • Z = Z1 * Z2 • Z = m1 * m2 * 2(E1 +E2) Übung Informatik1 für ET und MT
Aufgabe 2.4 • Bestimmen Sie zu dem Gleitkommawort nach Standard IEEE 754 • 1100 1000 0101 0000 0000 0000 0000 00002 • das wertgleiche vorzeichenbehaftete binäre Festkommawort! • 1100 1000 0101 0000 0000 0000 0000 00002 • VZ: 1 = negativ! • C = 100100002 = 144 • e = 144 – 127 = 17 • IXI = 1,101 * 217 = 011 0100 0000 0000 00002 • B-Komplement zu IXI = 100 1100 0000 0000 00002 • 32 bit Festkommazahl: 1111 1111 1111 1100 1100 0000 0000 00002 • (Auffüllen vorn mit Einsen, da negative Zahl, Wortbreite beachten.) Übung Informatik1 für ET und MT
Aufgabe 2.5 Was ist dichter Code, Code 1 aus n und BCD Code? Definitionen für Code (Werner,Taschenbuch der Informatik): Ein Code ist eine Menge von Wörtern über ein Alphabet, die eindeutig einer Menge von Symbolen oder einer Menge von Wörtern über ein anderes Alphabet zugeordnet ist. Die Elemente eines Codes heißen Codewörter. Begriff Code mit 2 Bedeutungen: (1) Ein Code ist eine Zuordnungsvorschrift, die den Elementen einer Menge von Informationen eine Menge von pragmatischen nützlichen Darstellungen zuordnet. Die Menge der Darstellungen wird in Verallgemeinerung des Begriffes auch als Alphabet bezeichnet. (2) Ein Code - genauer sollte man von einer Codierung sprechen - ist die pragmatische Darstellung eines Informationselementes. Übung Informatik1 für ET und MT
Dichter Code: Maschinencode der Wortlänge n ermöglicht die Bildung von k = 2nMaschinenwörtern. Dichter Code liegt vor, wenn q verschiedene Informationen zu codieren sind und die folgende Bedingung erfüllt ist: 2n-1 q 2n (d.h. Codierung mit weniger Binärstellen ist nicht möglich, z.B. 10 Dezimalziffern mit 4 Bit) Dichter Code mit Umschaltwörtern: Bei bestimmten Codes Wechsel der Codierungstabelle, mehr als 2n Codewörter möglich. Codetafel "1 aus n": q = n Beispiel: Codetabelle, n = 4 Information Maschinenwort a 0001 b 0010 c 0100 d 1000 Das Alphabet der Codetafel besteht zum Beispiel aus a, b, c, d d.h. aus 4 Informationen. Übung Informatik1 für ET und MT
Codetafel bzw. Codetabelle: Beispiel: BCD-Code Ziffernalphabet { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} BCD-Code (binary coded decimals): Zur Darstellung von ganzen Zahlen werden die Codewörter entsprechend der Ziffernfolge aneinandergereiht, z.B. 90510 = 1001 0000 0101 BCD (gepackt) Literatur: /FiLi93a/, S.14 Nachteil dieser Codierung ist, daß der Code nicht voll ausgenutzt wird. Übung Informatik1 für ET und MT
Aufgabe 2.6 Stellen Sie die Zeichenkette "Informatik I, WS 2008/2009" als ASCII-Code dar, und schreiben Sie das Ergebnis als eine Folge von Hexadezimalzahlen. Übung Informatik1 für ET und MT
Aufgabe 2.6 Stellen Sie die Zeichenkette "Informatik I, WS 2008/2009" als ASCII-Code dar, und schreiben Sie das Ergebnis als eine Folge von Hexadezimalzahlen. ASCII-Code Tabelle verwenden! 49 6E 66 6F 72 6D 61 74 69 6B 20(space) 49 2C 20 57 53 20 32 30 30 38 2F 32 30 30 39 Übung Informatik1 für ET und MT
Aufgabe 2.7 Gegeben sei das folgendermaßen kodierte Maschinenwort: 1100 0101 1000 0111 1000 0101 1001 10012 a) Warum kann keine Kodierung nach dem ISO 7-Bit-Kode (ASCII) vorliegen? b) Interpretieren Sie das Wort hexadezimal als vorzeichenlose Festkommazahl. c) Welcher Dezimalwert wird dargestellt, wenn es sich um ein Gleitkommawort nach Standard IEEE 754 handelt? d) Wie kann der Computer diese verschiedenen Informationen unterscheiden? Zu a) 1100 0101 | 1000 0111 | 1000 0101 | 1001 10012 Das 8. Bit ist nicht "0" und auch nicht Prüfbit ( weist weder auf gerade noch ungerade Parität hin) Übung Informatik1 für ET und MT
Zu b) unsigned: 1100 0101 1000 0111 1000 0101 1001 10012 C 5 8 7 8 5 9 916 C587859916 signed: 1100 0101 1000 0111 1000 0101 1001 10012 B-Kompl.: 0011 1010 0111 1000 0111 1010 0110 01112 3 A 7 8 7 A 6 716 -3A787A6716 Übung Informatik1 für ET und MT
Zu c) 1100 0101 1000 0111 1000 0101 1001 10012 0,5 negativ, 0,25 c = 100010112 = 139100,125 e = 139 – 127 = 120,0625 X = - 1,0000 1111 0000 1011 0011 0012 * 2120,03125 X = - 1 0000 1111 0000, 1011 0011 00120,015625 X = - 4336,69100,0078125 0,00390625 Ganzz. Teil: 4096 + 128 + 64 + 32 + 16 = 43360,001953125 Gebr. Teil: 0,5 + 0,125 + 0,0625 + 0,0078125 + . . .0,0009765625 0,00048878125 Zu d) Nur durch die mit den Daten ausgeführten Operationen erhalten die Daten eine bestimmte Semantik. Das Rechnerwort selbst sagt nichts über die Art der Daten aus, selbst Daten und Befehle lassen sich ohne Zusammenhang nicht unterscheiden (v. Neumann Variable). Übung Informatik1 für ET und MT
Zusatzaufgabe Geben Sie den dezimalen Wert der Festkommawörter 7A 3B16 und FF FF F3 2E16 an! 7A 3B16 positiv, also nur Konvertierung Hex. => Dez. 7A 3B16 = 7 * 163 + 10 * 162 + 3 * 161 + 11 * 160 = 7 * 4096 + 10 * 256 + 3 * 16 + 11 = 28672 + 2560 + 48 + 11 = 31 29110 FF FF F3 2E ist negativ, also zuerst Komplementbildung: 1 0000 000016 - FFFF F32E16 ------------------ ergibt: - CD216 und nun Konvertierung Hex. => Dez. = -(12 * 162 + 13 *16 + 2) = -(3072 + 208 + 2) = - 3 28210 Übung Informatik1 für ET und MT