Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Binäre Repräsentation von Information Bits und Bytes Binärzahlen ASCII Ganze Zahlen Rationale Zahlen Gleitkommazahlen Motivation Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Prinzip 8 der von-Neumann Architektur: (8)Alle Daten werden binär kodiert Prof. Dr. Knut Hinkelmann 2 Repräsentation von Information: Bits und Bitfolgen Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Bits kleinstmögliche Informationseinheit, die zwei Möglichkeiten zulässt ja oder nein, hell oder dunkel, gross oder klein Zur Darstellung reicht ein Code mit zwei Zeichen, meist 0 und 1 technisch realisiert durch elektrische Ladung (0 = ungeladen, 1 = geladen), oder elektrische Spannungen (0 = 0 Volt, 1 = 5 Volt) Bitfolgen Für Informationen mit mehr als zwei Möglichkeiten Bei drei oder vier Möglichkeiten benötigt man 2 Bits, für 5 bis 8 Möglichkeiten benötigt man 3 Bits usw. Beispiel: Himmelsrichtungen 00 = Süd, 01 = West, 10 = Nord, 11 = Ost Bitfolgen lassen sich als Zahlen im Dualsystem interpretieren Es gilt: Es gibt genau 2N Bitfolgen der Länge N Prof. Dr. Knut Hinkelmann 3 Fachhochschule Solothurn Nordwestschweiz Binärziffern Technik - Wirtschaft - Soziales 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 29 = 512 210 = 1024 Prof. Dr. Knut Hinkelmann 4 Fachhochschule Solothurn Nordwestschweiz Binärdarstellung positiver ganzer Zahlen Technik - Wirtschaft - Soziales Will man nur positive Zahlen darstellen, so kann man mit N Bits 2N Zahlen, d.h. den Bereich der Zahlen von 0 bis 2N - 1 darstellen Beispiel: N = 3: Prof. Dr. Knut Hinkelmann 000 001 010 011 100 101 110 111 = = = = = = = = 0 1 2 3 4 5 6 7 Beispiel: N = 4: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 = = = = = = = = = = = = = = = = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 Fachhochschule Solothurn Nordwestschweiz Binärdarstellung positiver ganzer Zahlen Technik - Wirtschaft - Soziales Will man nur positive Zahlen darstellen, so kann man mit N Bits 2N Zahlen, d.h. den Bereich der Zahlen von 0 bis 2N - 1 darstellen Die einzelnen Ziffern einer n-stelligen Zahl sind die Koeffizienten der Potenzen der Basis: Beispiel: Dezimalzahlen 4711 = 4 * 103 + 7 * 102 + 1 * 101 + 1 * 100 4 * 1000 + 7 * 100 + 1 * 10 + 1 * 1 Beispiel: Binärzahlen 11012 = 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 1*8+1*4+0*2+1*1 = 1310 Darstellung: Die tiefgestellt Zahl gibt die Basis der Zahl an Prof. Dr. Knut Hinkelmann 6 Fachhochschule Solothurn Nordwestschweiz Verfahren zur Umwandlung in Binärdarstellung Technik - Wirtschaft - Soziales Bei fortgesetztem Dividieren durch 2 ergeben die Reste nacheinander die Ziffern der Darstellung der ursprünglichen Zahl z im Zweiersystem Beispiel: Die Umwandlung der Dezimalzahl 2001 ins Binärsystem ergibt 11111010001 z z div 2 z mod 2 2001 1000 500 250 125 62 31 15 7 3 1 1000 500 250 125 62 31 15 7 3 1 0 1 0 0 0 1 0 1 1 1 1 1 Analoges gilt für die Umwandlung in andere Zahlensysteme, z.B. Umwandlung ins Oktalsystem: fortlaufendes Dividieren durch 8 Umwandlung ins Haxadezimalsystem: fortlaufendes Dividieren durch 16 Prof. Dr. Knut Hinkelmann 7 Fachhochschule Solothurn Nordwestschweiz Umwandlung in das Binärsystem: Hintergrund Technik - Wirtschaft - Soziales Bei der Division einer natürlichen Zahl durch eine andere natürliche Zahl d, so erhalten wir einen Quotienten q und einen Rest r: z=q*d+r (wobei 0 < r < d) Sei div die ganzzahlige Division und mod die Berechnung des Rest der Division (Beispiel: 35 div 8 = 4 und 35 mod 8 = 3) Dann gilt Dies nutzen wir aus für die Umwandlung einer natürlichen Zahl z in die entsprechende Binärzahl bnbn-1...b1bo z = (z div d) * d + (z mod d) z = (bnbn-1...b1bo)2 = bn* 2n + bn-1 * 2n-1 + ... + b1 * 21 + bo = (bn* 2n-1 + bn-1 * 2n-2 + ... + b1 * 20 )* 2 + bo = (bnbn-1...b1)2* 2 + bo Somit ist die letzte Ziffer b0 genau der Rest, der beim Dividieren durch 2 entsteht (z mod 2) und die restlichen Ziffern bnbn-1...b1 muss sich als Binärdarstellung von z div 2 ergeben. Prof. Dr. Knut Hinkelmann 8 Fachhochschule Solothurn Nordwestschweiz Oktal- und Hexadezimalsystem Technik - Wirtschaft - Soziales Neben dem Dezimal- und Binärsystem sind in der Informatik in Gebrauch Oktalsystem - Zahlen zur Basis 8 Verwendung der Ziffern 0 bis 7 Die einzelnen Ziffern einer mehrstelligen Oktalzahl sind Koeffizienten der Potenzen zur Basis 8 Beispiel 47118 = 4 * 83 + 7 * 82 + 1 * 81 + 1 * 80 = (2505)10 Hexadezimalsystem - Zahlen zur Basis 16 Verwendung der Ziffern 0 bis 9 und der Buchstaben A bis F (für 10 bis 15) Die einzelnen Ziffern einer mehrstelligen Hexadezimalzahl sind Koeffizienten der Potenzen zur Basis 16 Beispiel Prof. Dr. Knut Hinkelmann 2C7316 = 2 * 163 + 12 * 162 + 7 * 161 + 3 * 160 = (11379)10 9 Fachhochschule Solothurn Nordwestschweiz Umrechnung Binär- in Hexadezimal- und Oktalzahlen Technik - Wirtschaft - Soziales Die Bedeutung von Oktal- und Hexadezimalsystem liegt darin, dass man zwischen Binärsystem und Oktal- bzw. Hexadezimalsystem einfach umrechnen kann Der einfachen Lesbarkeit wegen gruppiert man grosse Bitfolgen in 4er-Gruppen und erhält die Hexadezimaldarstellung Jeder Gruppe gibt man einen Namen unter Verwendung der Ziffern 1 bis 9 und der Buchstaben A bis F: 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101= 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F Die Bitfolge 0100 1111 0110 0001 0110 1100 0110 11002 lässt sich dann kompakter schreiben als 4 F 6 1 6 C 6 C 16 Analog kann man Dreiergruppen von Binärziffern zusammenfassen und erhält daraus eine Oktalzahl Prof. Dr. Knut Hinkelmann 10 Fachhochschule Solothurn Nordwestschweiz Übungsaufgaben Technik - Wirtschaft - Soziales Wandeln Sie folgende Binärzahlen in Dezimalzahlen um 101 = 5 1101 = 13 11111110 = 254 11011011 = 219 11000011 = 195 Wandeln Sie folgende Dezimalzahlen in Binärzahlen, Oktalzahlen (Basis 8) und Hexadezimalzahlen (Basis 16) um Prof. Dr. Knut Hinkelmann 101 = 1100101 = 145 = 65 255 = 11111111 = 377 = FF 167 = 10100111 = 247 = A7 4582 = 1000111100110 = 10746 = 11E6 256 = 100000000 = 400 = 100 11 Zeichendarstellung: ASCII Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Binärzahlen werden zur Informationsspeicherung verwendet. Information, die man mit der Tastatur eintippt wird als Text (Zeichenfolge) interpretiert. Jedes Zeichen wird als Bitfolge codiert Die ASCII-Codierung benutzt 7 Bits eines Byte (27 = 128 Möglichkeiten) zur Darstellung eines Zeichens Prinzipien: die Kleinbuchstaben sind in der alphabetischen Reihenfolgen durchnumeriert (ASCII 97 = „a“, ... ASCII 122 = „z“) die Grossbuchstaben sind in der alphabetischen Reihenfolgen durchnumeriert (ASCII 65 = „A“, ... ASCII 90 = „Z“) die Ziffern 0 bis 9 stehen in der natürlich Reihenfolge (ASCII 48 = „0“, ... ASCII 57 = „9“) Die Zeichen ASCII 0 bis ASCII 31 sowie ASCII 127 dienen Steuerungszwecken. Eingabe über Tastatur durch Drücken der Steuerungstaste („Strg“ bzw „Ctrl“) ASCII 1 = Ctrl-A, ..., ASCII 26 = Ctrl-Z ASCII (American Standard Code for Information Exchange) Prof. Dr. Knut Hinkelmann 12 ASCII-Tabelle Prof. Dr. Knut Hinkelmann Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales 13 Informationsdarstellung: Text - ASCII Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Fortlaufenden Text kodiert man einfach durch aneinanderreihen der Codes einzelner Zeichen incl. des Codes für Lehrzeichen (Zeichenkette = string) Beispiel: „Knut liest“ wird kodiert als ASCII-Code 075 110 117 116 032 108 105 101 115 116 Bitfolge 01001011 01101110 01110101 01110100 00100000 01101100 01101001 01100101 01110011 01110100 Hexcode 4B 6E 75 74 20 6C 69 65 73 74 Bemerkung: Wenn Sie jemand auffordert, ihm ein Dokument in ASCII zu schicken, so meint er in der Regel: Schicken Sie mir den reinen Text ohne Formatanweisungen. Prof. Dr. Knut Hinkelmann 14 ASCII-Erweiterungen Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Das achte Bit eines Byte wurde bei ASCII früher als Kontrollbit für die Datenübertragung genutzt: Es wurde auf 0 oder 1 gesetzt, damit die Anzahl der 1en immer gerade war (even parity). Trat bei der Datenübertragung ein kleiner Fehler auf (1 Bit gedreht), wurde dies erkannt Wegen verbesserter Qualität der Datenübertragung wurde das Kontrollbit überflüssig. Man konnte es für die Kodierung verwenden, so dass nun 28 = 256 Zeichen zur Verfügung stehen Die International Standardization Organization (ISO) hat verschiedene ASCII-Erweiterungen normiert. In Europa ist die ASCII-Erweiterung Latin-1 nützlich, die z.B. sprachspezifische Zeichen enthält, wie z.B. Umlaute („ä“, „ö“, „ü“, „Ä“, „Ö“, „Ü“) Probleme: Einige Rechner (z.B. unter UNIX-Betriebssystem) verwenden nur die genormten ASCII-Zeichen 0 bis 127 (Umlaute nicht so einfach darstellbar); andere haben eigene Erweiterungen. Beim Austausch von Daten, Emails usw. müssen Sender und Empfänger die gleiche ASCII-Erweiterung verwenden (Lösung: Umcodierung einer Datei in ASCII mittels der Programme uuencode und Dekodierung mittels uudecode) Prof. Dr. Knut Hinkelmann 15 Fachhochschule Solothurn Nordwestschweiz Unicode Technik - Wirtschaft - Soziales Wegen der Problematik der ASCII-Erweiterungen entstand in den letzten Jahren ein neuer Standard: Unicode Ziel: sämtliche relevanten Zeichen aus den unterschiedlichen Kulturkreisen in universellem Code zusammenfassen Unicode verwendet 16-Bit-Codierung (maximal 216 = 65536 Zeichen) Die ersten 128 Zeichen sind identisch mit ASCII die nächsten 128 Zeichen sind identisch mit ISO-Latin 1 Programmiersprachen lassen meist keine Zeichen aus ASCII-Erweiterungen zu (Ausnahme: Java) Prof. Dr. Knut Hinkelmann 16 Bearbeitung binär codierter Information Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales ASCII, Unicode für Beschreibung von Daten nicht für Berechnung geeignet Datentypen in Programmiersprachen werden speziell repräsentiert, damit man mit ihnen rechnen kann Prof. Dr. Knut Hinkelmann Ganze Zahlen (Integer): Zweierkomplement Gebrochene Zahlen Gleitkommazahlen Boolesche Werte 17 Fachhochschule Solothurn Nordwestschweiz Arithmetische Operationen auf Binärzahlen: Addition Technik - Wirtschaft - Soziales Zwei aus mehreren Ziffern bestehende Binärzahlen werden addiert, wie man es von Dezimalzahlen gewohnt ist Ein an einer Ziffernposition entstehender Übertrag wird zur hächsthöheren Ziffernposition addiert Ein Übertrag entsteht, wenn bei der Addition zweier Ziffern der Wert grösser oder gleich dem Basiswert ist Bei Binärzahlen entsteht ein Übertrag schon bei 1+1 Beispiel Binär Oktal Hexadezimal Dezimal 10010 + 100111 = 111001 2752 4261 7233 27CA AF 93 D75D 2752 4261 7013 Problem: Wenn durch Übertrag die reservierten Stellen für die Zahl nicht ausreichen, kann es zu Fehlern kommen! Prof. Dr. Knut Hinkelmann 18 Darstellung ganzer Zahlen Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Als ganze Zahlen bereichnet man die Vereinigung der natürlichen Zahlen und der negativen Zahlen Für positive ganze Zahlen, kann man die Binärdarstellung verwenden Kommen negative Zahlen hinzu, müssen wir ein Bit für das Vorzeichen verwenden Erste Überlegung: Vorzeichendarstellung Nehme gewöhnliche Binärzahlen und füge ein Bit für Vorzeichen hinzu Beispiel: Bei 4 Ziffern kann man den Bereich von -7 bis +7 darstellen Diese Darstellung hat eine Reihe von Nachteilen Die Null wird durch zwei Bitfolgen für +0 und -0 dargestellt: 0000 und 1000 Addition muss berücksichtigen, welches Bit das Vorzeichen darstellt Alternative: Zweierkomplementdarstellung Prof. Dr. Knut Hinkelmann 19 Fachhochschule Solothurn Nordwestschweiz Die Zweierkomplementdarstellung für ganze Zahlen Technik - Wirtschaft - Soziales Zahlenbereich bei N Bits: -2N-1 bis +2N-1-1 Bei der Zweikomplementdarstellung wird das erste Bit negiert betrachtet wird. Die restlichen Bits behalten ihre Bedeutung. Die Ziffernfolge bnbn-1...b1b0 bezeichnet also folgende Zahl z = -bn * 2n + bn-1 * 2n-1 + ... + b1 * 21 + b0 Wir betrachten dies am Beispiel mit 4 Bits (Darstellung 16 ganzer Zahlen) 1000 = -8 1001 = -7 1010 = -6 1011 = -5 1100 = -4 1101 = -3 1110 = -2 1111 = -1 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 Prinzip: Seien N Bits für die Zahlendarstellung zur Verfügung Zähle von 0 aufwärts bis obere Grenze (2N-1-1) anschliessend wird an der unteren Grenze (-2N-1) fortgesetzt bis -1 Prof. Dr. Knut Hinkelmann 20 Zweierkomplementdarstellung Prof. Dr. Knut Hinkelmann Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales 21 Fachhochschule Solothurn Nordwestschweiz Zahlenbereiche für ganze Zahlen in Programmiersprachen Technik - Wirtschaft - Soziales Je nach dem, wieviel Bit für die Zahlendarstellung zur Verfügung gestellt wird, können in den einzelnen Programmiersprachen unterschiedliche Zahlenbereiche genutzt werden Prof. Dr. Knut Hinkelmann Bereich Bits -128...127 -32768...32767 -231...231-1 -263 .. 263-1 0...255 0...65535 8 Bit 16 Bit 32 Bit 64 Bit 8 Bit 16 Bit Datentypen in Delphi Java Shortint Integer Longint byte short int long Byte Word 22 Fachhochschule Solothurn Nordwestschweiz Gebrochene (rationale) Zahlen Technik - Wirtschaft - Soziales Zwischen je zwei Zahlen gibt es unendlich viele rationale Zahlen Eine feste Anzahl von N Bits reicht also nicht aus, um alle rationalen Zahlen eines Intervalls exakt darzustellen Rationale Zahlen werden als Kommazahlen mit einer festen Anzahl n von Stellen vor dem Komma und m Stellen nach dem Komma repräsentiert Die Ziffernfolge bn bn-1 ... b1 b0 , c1 c2 ... cm wobei bi,ci, in {0,1} steht dabei für den Zahlenwert z = bn * 2n + ... b1 * 21 + b0 * 20 + c1 * 2-1 + c2 * 2-2 + ... + cm * 2-m Beispiele: Prof. Dr. Knut Hinkelmann gebrochene Binärzahl gebrochene Dezimalzahl 0.1 0.01 0.11 111.111 0.0001100110011... 0.5 0.25 0.75 7.875 0.1 23 Gleitpunktdarstellung für Reelle Zahlen Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Gesucht ist eine Darstellung, die bei festem Bitformat ein möglichst grosses Intervall der reellen Zahlen umfasst und deren Genauigkeit bei kleinen Zahlen sehr hoch ist, bei grossen Zahlen niedriger Eine Gleitpunktzahl besteht aus drei Teilen: dem Vorzeichenbit V dem Exponenten E der Mantisse M Eine normierte Gleitpunktzahl mit Vorzeichen V, Mantisse m1...mn und Exponent E stellt folgenden Zahlenwert dar: (-1)V * (1 + m1 * 21 + ... + mn * 2n) * 2E Da die Null formal nicht darstellbar ist, wird die kleinste darstellbare Zahl also Null interpretiert. Die IEEE (Institute for Electrical and Electronics Engineers) hat zwei Normen verabschiedet Short Real: Vorzeichen: 1 Bit, Exponent: 8 Bit, Mantisse: 23 Bit Long Real: Vorzeichen: 1 Bit, Exponent: 11 Bit, Mantisse: 52 Bit Prof. Dr. Knut Hinkelmann 24 Zahlenbereiche für reelle Zahlen in Programmiersprachen Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Je nach dem, wieviel Bytes für die Zahlendarstellung zur Verfügung gestellt werden, können in den einzelnen Programmiersprachen unterschiedliche Zahlenbereiche genutzt werden Bytes 6 4 8 10 Prof. Dr. Knut Hinkelmann Datentypen in Delphi Java Real Single Double Extended float double 25 Repräsentation von Information: Bytes Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Ein Rechner arbeitet immer mit Gruppen von Bits, entweder 8 Bits, 16 Bits, 32 Bits oder 64 Bits Eine Gruppe von 8 Bits nennt man Byte Eine Datei ist eine beliebig lange Folge von Bytes. Unter der Grösse einer Datei versteht man die Anzahl der darin enthaltenen Bytes Für grosse Dateien verwendet man die bekannten Präfixe kilo (für tausend), mega (für million) usw. allerdings für Zweierpotenzen k = 1024 = 210 (k = Kilo) M = 1024 * 1024 = 220 (M = Mega) G = 1024 * 1024 * 1024 = 230 (G = Giga) T = 1024 * 1024 * 1024 * 1024 = 240 (T = Tera) P = 1024 * 1024 * 1024 * 1024 * 1024 = 250 (P = Peta) E = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 = 260 (E = Exa) Prof. Dr. Knut Hinkelmann 26 Codierung logischer Werte Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Da es nur zwei Wahrheitswerte gibt, könnte man diese durch 1 Bit darstellen Da aber ein Byte die kleinste adressierbare Einheit ist, spendiert man ein ganzes Byte für einen Wahrheitswert Gängige Codierung: F = 0000 0000 und T = 1111 1111 Prof. Dr. Knut Hinkelmann 27 Daten - Information Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Information hat eine Bedeutung und einen Zweck (z.B. Austausch von Nachrichten) Heute ist es 15° kalt Der Umsatz im Jahr 1999 betrug 1.530.932 Fr. und im Jahr 2000 betrug er 2.234.432 Fr. Information wird im Rechner durch Daten (Folgen von Bits) repräsentiert. Zu den elementaren Fähigkeiten eines Rechners gehören das Lesen von Daten das Speichern von Daten (intern im Hauptspeicher oder auf externem Medium) die Verknüpfung von Daten durch arithmetische oder logische Operationen Die Tätigkeit des Rechners wird ebenfalls durch Daten (das Programm) gesteuert Um Informationen zu verarbeiten, muss man die informationsverarbeitenden Operationen durch Operationen auf den entsprechenden Daten nachbilden Beispiel: Berechnung der Umsatzsteigerung zwischen 1999 und 2000 Prof. Dr. Knut Hinkelmann 28 Fachhochschule Solothurn Nordwestschweiz Informationsverarbeitung - Datenverarbeitung Information Informationsverarbeitung Technik - Wirtschaft - Soziales Information Repräsentation Abstraktion Daten Prof. Dr. Knut Hinkelmann Datenverarbeitung Daten 29 Repräsentation von Information Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Um die geeignete Repräsentation hängt ab von der Information selbst der gewünschten Verarbeitung Um Informationen zu Vermitteln genügt die Repräsentation als Text (z.B. Versenden als Email oder Schreiben eines Briefes) Um Information zu berechnen benötigt man entsprechende Datenstrukturen Beispiel: Umsatzentwicklung: Repräsentation als Gleitkommazahl Prof. Dr. Knut Hinkelmann 30 Abstraktion bzw. Interpretation von Information Fachhochschule Solothurn Nordwestschweiz Technik - Wirtschaft - Soziales Information hat eine Bedeutung und einen Zweck, Daten dagegen haben keine Bedeutung Um aus den Daten deren Bedeutung zur erkennen muss man sie interpretieren Die Interpretation von Daten nennt man auch Abstraktion Beispiel: 0100 0100 0110 0101 0111 0010 0010 0000 0100 0010 0110 0001 0110 1100 0100 1100 0010 0000 0110 1001 0111 0011 0111 0100 0010 0000 0111 0010 0111 0101 0110 1110 0110 0100 0010 1110 Etwas lesbarer als Hexadezimalzahl 44 65 72 20 42 61 6C 6C 20 69 73 74 20 72 75 6E 64 2E Interpretationsmöglichkeiten Prof. Dr. Knut Hinkelmann Als Folge 1-Byte-Zahlen: 68 101 114 32 ... Als Folge von 2-Byte-Zahlen: 17509 29216 16993 ... Als Folge von 8-stelligen Zweierkomplementzahlen: 68 101 114 32 ... Als ASCII: Der Ball ist rund. 31