6. Digitale Datendarstellung • Daten repräsentieren Informationen über die reale Welt im Rechner • Sie sind die fundamentalen Objekte, die im Rechner gespeichert, verarbeitet und wieder ausgegeben werden können • Unterschiedliche Typen von Daten werden in unterschiedlichen Datenstrukturen repräsentiert: Einfache Datenstrukturen: - numerisch: natürliche Zahlen, ganze Zahlen, rationale Zahlen, ... - symbolisch: Zeichenketten (strings), Zusammengesetzte Datenstrukturen: - Mengen, Listen, Bäume, ... - Sammlungen von Datensätzen (Dateien) G.Heyer 1 Digitale Informationsverarbeitung Codierung Daten werden als Zeichenketten (Wörter) dargestellt. Die Menge der in den Zeichenketten vorkommenden Symbole heißt Alphabet. bekannte Beispiele: {a,b,c,...,A,B,C, ...}, {0,1,...,9}, {0,1} Sei ein Alphabet. * bezeichnet die Menge aller endlichen Zeichenketten, die aus gebildet werden können (einschließlich der leeren Kette). Mit k-elementigem Alphabet lassen sich k n Wörter der Länge n erzeugen. Seien und Alphabete. Eine Codierung (von in ist eine injektive Abbildung c: * --> *. Eine Binärcodierung ist eine Codierung, bei der || = 2 ist (oft = {0,1}). Vorteil: einfache physikalische Realisierungsmöglichkeit (Spannung ja/nein, Magnetisierung positiv/negativ, Loch ja/nein, ...) Für analoge Daten Diskretisierung (Rasterung) erforderlich G.Heyer 2 Digitale Informationsverarbeitung Binärcodierung von Texten Codiert werden Groß-, Kleinbuchstaben, Ziffern, Satzzeichen, Sonderzeichen Verbreitetster Standard: ASCII (American Standard Code for Information Interchange) bzw. erweiterter ASCII (8 Bits) Auszug aus Code-Tabelle: G.Heyer Symbol ASCII dezimal 0 1 9 A B Z [ a b z 00110000 00110001 00111001 01000001 01000010 01011010 01011011 01100001 01100010 01111010 48 49 57 65 66 90 91 97 98 122 3 Digitale Informationsverarbeitung Natürliche Zahlen Stellenwertcodierung: zu jeder natürlichen Zahl n und jeder Basis b gibt es genau eine Folge xk xk^-1... x2 x1, so daß xk ≠ 0 und n= k xi b i i=0 Bemerkung: falls Ziffern 0,...,9 nicht für Basis ausreichen, weitere Symbole nötig, üblicherweise A,B,C,... Beispiele: 114 10 = 1110010 2 = 72 16 2F16 = 47 10 = 101111 2 G.Heyer 4 Digitale Informationsverarbeitung Konvertierungen von n in Basis b Methode 1: identifiziere größte Potenz b i von b, die kleiner als n ist. Dividiere n durch b i , den Rest durch b i-1 usw. bis b 0 . Die Divisionsergebnisse ergeben die gesuchte Ziffernfolge von links nach rechts. Methode 2: dividiere n sowie die jeweils entstehenden Ergebnisse fortlaufend durch Basis b. Die dabei entstehenden Reste ergeben die gesuchte Ziffernfolge von rechts nach links. G.Heyer 5 Digitale Informationsverarbeitung Rechnen mit Dualzahlen Beispiele 0+0=0 1+0=1 0+1=1 1 + 1 = 0 (Ü = 1) 10110 • 101 1011000 000000 10110 1101110 10110 + 101 11011 0•0=0 1•0=0 0•1=0 1•1=1 Subtraktion durch stellenweise Komplementbildung und Addition: 1011 - 0101 = 1011 + 1010 + 1 - 10000 = 0101 + 1 = 0110 11 - 5 = 11 + 10 + 1 - 16 = 5 + 1 = 6 Warum funktioniert das? Sei x n-stellig. Zu berechnen x - y. Sei y das Komplement von y. y + y = 1...1 = 2 n - 1. Also: x - y = x - [2 n - 1 - y] = x + y + 1 - 2 n G.Heyer 6 Digitale Informationsverarbeitung Darstellung ganzer Zahlen (Datentyp Integer) positive und negative Zahlen durch Vorzeichenbit unterschieden (0 = +, 1 = -) darstellbar: - (2 n-1 ) + 1 bis 2 n-1 - 1. Beispiel: n = 4 0000 = +0 0001 = +1 0010 = +2 0011 = +3 1000 = -0 1001 = -1 1010 = -2 1011 = -3 0100 = +4 0101 = +5 0110 = +6 0111 = +7 1100 = -4 1101 = -5 1110 = -6 1111 = -7 Nachteile: 0 zweimal repräsentiert, Rechenoperationen komplizierter ==> (Zweier-) Komplementdarstellung G.Heyer 7 Digitale Informationsverarbeitung Komplementdarstellung -z repräsentiert durch 2 n - z (entspricht Stellenkomplement + 1). Vorzeichen durch erstes Bit bestimmt. Binäre Ziffernfolge xn-1 xn-2 ... x1 x0 repräsentiert: xn-1 • (- 2 n-1 ) + xn-2 • 2 n-2 + ... + x1 • 2 + x0 darstellbar: - (2n-1 ) bis 2n-1 - 1. Beispiel: n = 4 0000 = +0 0001 = +1 0010 = +2 0011 = +3 0100 = +4 0101 = +5 0110 = +6 0111 = +7 1000 = -8 1001 = -7 1010 = -6 1011 = -5 1100 = -4 1101 = -3 1110 = -2 1111 = -1 Vorteil: Addition negativer Zahlen wie für natürliche Zahlen G.Heyer 8 Digitale Informationsverarbeitung Rationale Zahlen Mit n Bits nur 2 n Werte exakt darstellbar, daher müssen alle anderen rationalen Zahlen durch benachbarten Wert approximiert werden. Jede nichtnegative rationale Zahl kann eindeutig in einen ganzzahligen Anteil z1 1 und gebrochenen Anteil 0 z2 < 1 zerlegt werden, so daß z = z1 + z2. Festpunktdarstellung für z im Stellenwertsystem mit n = k + m Stellen und Basis b: xk-1 xk-2 ... x1 x0.y1 ... ym steht für k-1 z = xi bi + i=0 m yi b -i i=1 Konversion analog zu ganzen Zahlen: 1.1011 2 = 1 + 1/2 + 1/8 + 1/16 G.Heyer 9 Digitale Informationsverarbeitung Gleit- oder Fließpunktdarstellung: Datentyp REAL Halblogarithmische Zahlendarstellung sinnvoll vor allem bei sehr großen und sehr kleinen Zahlen. Gleitpunktzahl besteht aus Mantisse und Exponent Darstellung im IEEE-Standard (Short Real): 1 v 8 c 23 m c-127 x = (-1) v • 2 • 1.m Darstellung der 0: c = 0, m = 0 kleinste positive Zahl: 2 -126 (ca. 1.2 • 10 -38 ) -23 38 größte positive Zahl: (2 - 2 ) • 2 128 (ca. 3.4 • 10 ) Genauigkeit etwa 7 Dezimalstellen G.Heyer 10 Digitale Informationsverarbeitung Ein Beispiel 0100 0010 1000 1100 1110 1001 1111 1100 Exponent: 133 - 127 = 6 1+ + Mantisse: 2 -4+ 2 -5+ 2 -8 + 2 -9+ 2 -10 + 2 -12 + 2 -15 + 2 -18+ 2 -19 + 2 -20+ 2 -21 = 1.1008906 2 -16 + 2 -17 Vorzeichen 0: positive Zahl Wert der Gleitkommazahl in Dezimaldarstellung: +1.1008906 • 64 = 70.457 G.Heyer 11 Digitale Informationsverarbeitung Bemerkungen Es ist einer Bitfolge nicht anzusehen, ob sie ASCII-Zeichen, ganze Zahl, Gleitpunktzahl, Programmbefehl oder etwas anderes ist Interpretation abhängig vom Kontext Auch Graphiken, Bilder, Filme, Töne etc. lassen sich digitalisieren Dazu meist Diskretisierung analoger Daten erforderlich. 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 Rasterung für Praxis wohl etwas zu grob :-) G.Heyer 12 Digitale Informationsverarbeitung