Einführung in die Informatik

Ähnliche Dokumente
D A T E N... 1 Daten Micheuz Peter

Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

Informationsdarstellung im Rechner

Leseprobe. Taschenbuch Mikroprozessortechnik. Herausgegeben von Thomas Beierlein, Olaf Hagenbruch ISBN:

Das Rechnermodell - Funktion

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Daten, Informationen, Kodierung. Binärkodierung

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

Das Maschinenmodell Datenrepräsentation

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

Kapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Technische Informatik I

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Inhalt: Binärsystem 7.Klasse - 1 -

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

TOTAL DIGITAL - Wie Computer Daten darstellen

Vertiefungsstoff zum Thema Darstellung von Zahlen

Grundstrukturen: Speicherorganisation und Zahlenmengen

2 Informationstheorie

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

Dualzahlen

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Die Mathematik in der CD

2 Darstellung von Zahlen und Zeichen

Grundlagen der Informatik

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

4. Digitale Datendarstellung

2 Rechnen auf einem Computer

Redundanz. Technische Informationsquelle Entropie und Redundanz Huffman Codierung. Martin Werner WS 09/10. Martin Werner, Dezember 09 1

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc.

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

Rechnerstrukturen WS 2012/13

Binäre Gleitkommazahlen

Lösungen: zu 1. a.) b.) c.)

Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren:

Skript Zahlensysteme

Zahlensysteme: Oktal- und Hexadezimalsystem

Binärdarstellung von Fliesskommazahlen

1. Stellenwerte im Dualsystem

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

gleich ?

Aufbau und Funktionsweise eines Computers

Zahlensysteme. Zahl Stellenwert Zahl Zahl =

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik

Repräsentation von Daten Binärcodierung ganzer Zahlen

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Wozu wird ein Rechensystem genutzt? Informationsverarbeitung Information. Information. Interpretation, Abstraktion. Repräsentation.

Darstellung von Informationen

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

BSZ für Elektrotechnik Dresden. Zahlenformate. Dr.-Ing. Uwe Heiner Leichsenring

Einführung in die Informatik I

Einführung in die Informatik

2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen

Numerische Datentypen. Simon Weidmann

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

3 Rechnen und Schaltnetze

9 Codes. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 9-1

3. Informationsdarstellung

Binäre Division. Binäre Division (Forts.)

Information in einem Computer ist ein

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

Algorithmen & Programmierung. Zahlensysteme Bits und Bytes

Technische Grundlagen der Informatik Kapitel 8. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

2 Einfache Rechnungen

2. Zahlendarstellung und Rechenregeln in Digitalrechnern

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

Computerarithmetik ( )

EIN NEUES KAPITEL: SPEICHERUNG UND INTERPRETATION VON INFORMATION

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Einstieg in die Informatik mit Java

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

Codierung. H.-G. Hopf

Zahlendarstellungen und Rechnerarithmetik*

Teil II. Schaltfunktionen

Aufbau und Funktionsweise eines Computers

Technische Informatik - Eine Einführung

Modul 114. Zahlensysteme

Kodierung. Kodierung von Zeichen mit dem ASCII-Code

BinärCode. Codealphabet: 0 ; 1 Codeworte : Dualzahlen

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

Programmiertechnik Skalare Typen,Variablen, Zuweisungen

Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele

Logische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB.

Propädeutikum zur Programmierung

Grundlagen der Informatik

FH Darmstadt FB Informatik Klausurensammlung Rechnergrundlagen Prof. Komar

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen

Transkript:

Einführung in die Informatik Daten, Information und Nachrichten Informationstheorie, Informationsgehalt, Entropie Codierungen Dualzahlen Diskretisierung und Digitalisierung Speicherung von Daten und Programmen 01101101 01011001 11010011 10011000 00000011 00011100 01111111 11111111 00110100 00101110 11101110 01110010 10011101 00111010

2 Definitionsversuche aus dem Duden Informatik (1) Datum (=EZ von Daten ) Kleinstes unteilbares Element des Wertebereichs eines Datentyps. In der Informatik definiert man den Begriff des Datums häufig viel umfassender als Nachricht oder Teil einer Nachricht, die so dargestellt ist, dass sie maschinell verarbeitet werden kann.

3 Definitionsversuche aus dem Duden Informatik (2) Information umfasst eine Nachricht zusammen mit ihrer Bedeutung für den Empfänger. Diese Bedeutung kann darin bestehen, dass ein Mensch der Nachricht einen Sinn gibt, oder die Bedeutung kann indirekt aus der Art der weiteren Verarbeitung der Nachricht geschlossen werden. auch im Sinne von: Maß für den Informationsgehalt einer Nachricht

4 Definitionsversuche aus dem Duden Informatik (3) Nachricht ist eine endliche Zeichenfolge, die eine Information vermittelt. Bei der Übertragung von Nachrichten müssen oft feste Regeln eingehalten werden. Information Nachricht

5 Informationsgehalt Kernfrage: Wie weit kann man eine Nachricht verkürzen, so dass sie noch dieselbe Bedeutung für den Empfänger besitzt wie die ursprüngliche Nachricht? Langtext Abkürzung Faktor Donaudampfschifffahrtsgesellschaft DDSG 34:4 Einf. i. d. Inf. 28:16 XXXXXXXXXXXXXXXXXXXX 20X 20:3 1000000000 1 Mrd.; 10 9 ; 1E9 10:3 3.141592653589790 π 17:1 Ja, das ist richtig Ja; OK; 1; true 19:1 Das stimmt nicht Nein; 0; false 16:1

6 Informationsgehalt einzelner Zeichen Manchmal haben sogar einzelne Zeichen wesentliche Bedeutung. Er denkt an sich selbst zuletzt. Er denkt an sich, selbst zuletzt. Ma fu r mit sein m Auto nach San Fran. 20,

7 Informationstheorie Messung des Informationsgehalts Beseitigung von Redundanz Anwendungen: Datenkompression (kompaktere Speicherung, schnellere Übertragung) Fehlererkennung und -korrektur bei unsicheren Übertragungskanälen

8 Denksportaufgabe Wie kann man Texte, die viele Wiederholungen einzelner Zeichen enthalten, ohne Informationsverlust verdichten? D.h., aus dem verkürzten Text soll der Empfänger den ursprünglichen Langtext exakt rekonstruieren können. Beispiele: //---------------- Kommentar ----------------- 001000000010111111110000000111111?

9 Informationstheorie nach Shannon Claude Elwood Shannon (1916-2001) 1948: Mathematische Theorie der Informationsübertragung von Shannon benutzter Informationsbegriff: Information ist neues Wissen über ein Ereignis, einen Tatbestand oder einen Sachverhalt; Information ist Beseitigung von Ungewissheit.

10 Berechnung des Informationsgehalts Einheit: 1 bit = Anzahl der Ja/Nein-Fragen, die zum Erfragen der gesuchten Information erforderlich sind. k Fragen ermöglichen die Auswahl aus 2 k Möglichkeiten (Wahrscheinlichkeit pro Möglichkeit = 1/2 k ) Beispiel: männlich? J N Karl? Eva? J N J N Karl Hans Eva Maria

11 Informationsgehalt von Zeichen (1) Darstellung eines Textes durch Zeichen aus einem Zeichenvorrat mit n Zeichen. Annahme: Alle Zeichen kommen gleich häufig vor. Auftrittswahrscheinlichkeit eines Zeichens: p=1/n Es gilt 2 k = n = 1/p k = ld(1/p) = -ld(p) ld = Logarithmus dualis = log 2 Berechnung: ldx = logx log2 = logx 0.301 ldx = lnx ln2 = lnx 0.693

12 Informationsgehalt von Zeichen (2) Verallgemeinerung: unterschiedliche Häufigkeiten der Zeichen; p A p B Berechnung nach der selben Formel: k S = ld(1/p S ) = -ld(p S ) Beispiel (Buchstabenhäufigkeit in deutschen Texten): p E = 0,147 (ca. jeder 7. Buchstabe) k E = -ld(p E ) = -ld(0,147) = 2,766 p Y = 0,0002 (ca. jeder 5000. Buchstabe) k Y = -ld(p Y ) = -ld(0,0002) = 12,288

13 Informationsgehalt von Zeichen (3) Nachrichtenübertragung: Für den Empfänger ist das Eintreffen eines Zeichens x ein Ereignis. Je unwahrscheinlicher das Ereignis, desto größer ist sein Informationsgehalt (wahrscheinliche Ereignisse kann man leichter erraten). Informationsgehalt 6 5 4 3 2 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Wahrscheinlichkeit

14 Durchschnittlicher Informationsgehalt Für einen ganzen Zeichensatz kann man den durchschnittlichen Informationsgehalt berechnen: H = n p i k i = p i ld p i i =1 n i =1 ( ) Informationsgehalte der Einzelzeichen werden mit ihren Wahrscheinlichkeiten gewichtet. H wird als Entropie bezeichnet.

15 Entropie-Beispiel 1 (5 Zeichen) gleiche Wahrscheinlichkeiten p k p*k A 0.20 2.32 0.46 B 0.20 2.32 0.46 C 0.20 2.32 0.46 D 0.20 2.32 0.46 E 0.20 2.32 0.46 1.00 H= 2.32 H = k i maximal verschiedene Wahrscheinlichkeiten p k p*k 0.01 6.64 0.07 0.04 4.64 0.19 0.10 3.32 0.33 0.25 2.00 0.50 0.60 0.74 0.44 1.00 H= 1.53

16 Entropie-Beispiel 2 (2 Zeichen) ( ( ) + p b ld( p b )) H = p a ld p a ( ( ) + ( 1 p a ) ld( 1 p a )) weil p b = 1 p a = p a ld p a (d.h., Funktion, die nur von p a abhängt) H maximal, wenn beide gleich wahrscheinlich 1.0 0.8 0.6 0.4 0.2 0 0 0.5 1 p a

17 Bedeutung der Entropie Maß für Unordnung (Chaos) hohe Entropie schwierige Vorhersagen vgl. Gastheorie:

18 Darstellung von Daten durch Zeichen Daten können u.a. durch Zahlen und Texte dargestellt werden. Auch Zahlen können als Texte repräsentiert werden. Beispiel: Textdarstellungen der Zahl 1234: 1234 MCCXXXIV eintausendzweihundertvierunddreißig Auch umgekehrt: Text durch Zahlen (siehe später)

19 Symbole und Alphabete Texte bestehen aus Symbolen (=Zeichen). Symbole entstammen einem Alphabet (=Zeichenvorrat). Alphabete sind endliche Mengen.

20 Beispiele für Alphabete Alphabet der Dezimalziffern {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Alphabet der Binärziffern {0, 1} (binäres Alphabet) Alphabet der Wahrheitswerte Alphabet der Wochentage {true, false} Alphabet der Großbuchstaben {A, B, C, D, E,, X, Y, Z} Alphabet der Morsezeichen {, } {Mo, Di, Mi, Do, Fr, Sa, So} Alphabet der Ampelfarben {,,, }

21 Alphabet der Binärziffern universell einsetzbar Informationsgehalt: 1 bit Symbole können mit beliebigen Bedeutungen versehen werden, z.b.: 0 = weiß, 1 = schwarz 0 = männlich, 1 = weiblich können zu Gruppen zusammengefasst werden 00 = 01 = 10 = 11 =

22 Gruppen von Binärziffern Mit n Binärziffern können 2 n Kombinationen gebildet werden. Beispiel: n=5; 2 5 =32 reicht zur Darstellung der Großbuchstaben, z.b.: 00000 = A 00001 = B 00010 = C 00011 = D 00100 = E 00101 = F

23 Gruppen verschiedener Länge Verschieden lange Gruppen können benutzt werden, um häufige Symbole durch kürzere Folgen darzustellen. Beispiel Morsecode: = A = B = E = N = Y Alphabet 1 Alphabet 2 Eine Zuordnungsvorschrift zwischen Symbolen zweier Alphabete heißt Code.

24 Beispiel ASCII ASCII = American Standard Code for Information Interchange Genormt als 7-Bit-Code: 00100000 = " " (Leerzeichen) 00110000 = "0" 01000001 = "A" 01100001 = "a" 00101010 = "*" 00110001 = "1" 01000010 = "B" 01100010 = "b" Erstes Bit mit Wert 1 für diverse Erweiterungen (z.b. Umlaute,, )

25 Kompakte Codierung Codes mit gleich großen Bitgruppen haben den Nachteil, dass häufige und seltene Symbole mit gleich vielen Zeichen dargestellt werden. Für Übertragung und kompakte Speicherung wünschenswert: verschieden lange Bitfolgen, je nach Häufigkeit der Symbole, z.b.: E = 01 S = 100 Y = 101110110 Verfahren zur Bestimmung einer guten Codierung nach Fano und Huffman.

26 Beispiel: Wochentage erste vier? 1 0 Mo, Di? 1 0 Fr? 1 0 Mo? 1 0 Mi? 1 0 Sa? 1 0 Mo Di Mi Do Fr Sa So = 111 = 110 = 101 = 100 = 01 = 001 = 000 bei gleicher Verteilung (p x = 1/7): im Schnitt (6*3+1*2)/7 = 2.86 Bit/Zeichen Entropie: ld(1/7) = 2,81 (nicht erreichbares Optimum)

27 ungleiche Verteilung Tag p [%] k [bit] p*k Mo 2 5.64 0.113 Di 5 4.32 0.216 Mi 10 3.32 0.332 Do 15 2.74 0.411 Fr 40 1.32 0.528 Sa 20 2.32 0.464 So 8 3.64 0.292 100 H= 2.356 (gleichverteilt: H=2.81)

28 Verfahren von Fano Idee: Absteigend sortieren, immer wieder möglichst nahe der Mitte teilen. Bits gewichtet Fr 40 40 60 0 0 00 2 0.8 Sa 20 20 1 01 2 0.4 Do 15 25 0 15 0 100 3 0.45 Mi 10 10 1 101 3 0.3 So 8 40 1 8 0 110 3 0.24 Di 5 15 1 7 1 5 0 1110 4 0.2 Mo 2 2 1 1111 4 0.08 Summe: 2.47 zum Vergleich: Entropie H = 2.356 (gleichverteilt: H = 2.81)

29 Verfahren von Huffman Idee: Absteigend sortieren, immer wieder die letzten beiden zusammenfassen und neu sortieren. 40 Fr 20 Sa 15 Do 10 Mi 8 So 5 Di 2 Mo 40 Fr 20 Sa 15 Do 10 Mi 8 So 0 7 DiMo 0 1 40 Fr 20 Sa 15 Do 15 SoDiMo 10 Mi 1 1 Codierung von rechts nach links 0 1 0 SaDoSoDiMoMi 40 Fr 25 SoDiMoMi 20 Sa 0 15 Do 1 0 Fr 0 SaDo 1 SoDiMoMi 40 Fr 35 SaDo 0 25 SoDiMoMi 0 Sa 1 SoDiMo 0 Do 101 1 Mi 111 100 0 1 1 1100 So DiMo 40 Fr 0 60 SaDoSoDiMoMi 0 1 Di Mo 11010 11011 1

30 Huffman-Code und Entropie Fr Sa Do Mi So Di Mo 40 20 15 10 8 5 2 Huffman Code Bits gewichtet 0 1 0.4 << 100 3 0.6 101 3 0.45 111 3 0.3 1100 4 0.32 11010 5 0.25 > 11011 5 0.10 Summe: 2.42 Code 00 01 100 101 110 1110 1111 zum Vergleich: Entropie H = 2.356 (gleichverteilt: H = 2.81) Fano Bits gewichtet 2 0.8 2 0.4 3 0.45 3 0.3 3 0.24 4 0.2 4 0.08 Summe: 2.47

31 Codierungsbeispiel (Huffman) Fr Sa Do Mi So Di Mo 0 100 101 111 1100 11010 11011 Decodierung mit Entscheidungsbaum: 0 Fr 1 0 1 keine Trennzeichen erforderlich! 0 Sa 1 0 Do 1 Mi 0 1 So 0 1 Fr, Do, Do, So, Mo 0101101110011011 Fr Do Do So empfindlich gegen Übertragungsfehler: 1101101110011011 Di Mo Mo Mo Fr Mi Fr Fr Mo Aus 4 Symbolen werden 5 andere

32 Anwendungen Datenkompression (z.b. LZH-Verfahren) LZH = Lempel-Ziv-Huffman kompaktere Speicherung, schnellere Übertragung umgekehrt: gezielte Einstreuung von Redundanz zur Erkennung und Korrektur von Fehlern

33 Codierung von Zahlen (1) Beispiel: Ganze Zahl 123 a) als ASCII-Text: Ziffernzeichen "1", "2" und "3": 00110001 00110010 00110011 (3 Bytes = 24 Bits) beliebig lang, lesbare Darstellung erste 4 Bits sind immer gleich b) Weglassen der führenden Bits (0011) BCD-Darstellung (Binary Coded Decimals) 0001 0010 0011 (12 Bits) 0 = 0000 1 = 0001 2 = 0010 3 = 0011 4 = 0100 5 = 0101 6 = 0110 7 = 0111 8 = 1000 9 = 1001 restliche 6 Bitkombinationen bleiben ungenutzt: 1010, 1011, 1100, 1101, 1110, 1111

34 Codierung von Zahlen (2) c) Dualzahlen zur Basis 2 123 = 1111011 = 1*2 6 + 1*2 5 + 1*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 64 + 32 + 16 + 8 + 2 + 1 Größter darstellbarer Wertebereich: n Binärziffern: 0 bis 2 n 1 Binärziffern größte darstellbare Zahl 4 15 8 255 16 65 535 32 4 294 967 295 64 18 446 744 073 709 551 615 Tri Brd Bio Mrd Mio

35 Berechnung allgemein Beispiel 8-Bit-Zahl Bits werden von rechts nach links mit 0 beginnend nummeriert: MSB LSB b7 b6 b5 b4 b3 b2 b1 b0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Bit-Nummer entspricht der Wertigkeit MSB = most significant bit; LSB = least significant bit n 1 i = 0 Zahlenwert: v = b i 2 i

36 Berechnung händisch (1) Dualzahl Dezimalzahl von links nach rechts nach dem Horner-Schema 1 0 1 0 1 1 1 *2+ =2 *2+ =5 *2+ =10 *2+ =21 *2+ =43

37 Berechnung händisch (2) Dezimalzahl Dualzahl von rechts nach links durch fortgesetzte Division: 43 : 2 = 21, Rest 1 21 : 2 = 10, Rest 1 10 : 2 = 5, Rest 0 5 : 2 = 2, Rest 1 2 : 2 = 1, Rest 0 1 : 2 = 0, Rest 1 Ungerade Zahlen enden mit 1, gerade enden mit 0. 1 0 1 0 1 1

38 Negative Zahlen MSB wird für das Vorzeichen reserviert, z.b. bei 16 Bit: 1 15 V Betrag 15 14 13 2 1 0 0 = positiv 1 = negativ Berechnung nicht durch Vorzeichenumkehr, sondern durch Subtraktion von 2 15. (Zweierkomplement-Darstellung)

39 Beispiele für negative Zahlen 0 0000000 00000000 = 0 0 0000000 00000001 = 1 0 1111111 11111111 = 2 15 1 = 32767 = größtmögliche Zahl 1 1111111 11111111 = (2 15 1) 2 15 = 1 1 0000000 00000000 = 0 2 15 = 32768 = kleinstmögliche Zahl min = max +1 (0 zählt als positive Zahl) Wertebereich bei n Bits: 2 n-1 bis +2 n-1 1 16 Bits: 32 768 bis +32767 32 Bits: 2 147 483 648 bis +2 147 483 647

40 Rechnen mit Dualzahlen Addition Additionstabelle: + 0 1 0 0 1 1 1 1 0 Übertrag Addition von rechts nach links unter Berücksichtigung des Übertrags, z.b.: 0 0 1 0 1 0 1 1 = 43 0 0 1 1 0 0 0 1 = 49 0 1 0 1 1 1 0 0 = 92 1 1 1

41 Rechnen mit Dualzahlen Addition mit Vorzeichen Dank Zweierkomplement auf die selbe Weise: Überlauf!? 1 0 0 0 0 1 0 1 1 = 11 1 1 1 1 1 1 1 1 = 1 0 0 0 0 1 0 1 0 = 10 1 1 1 1 1 1 OK, wenn die letzte und vorletzte Stelle (oder keine von beiden) einen Übertrag liefern. 1

42 Rechnen mit Dualzahlen Vorzeichenumkehr Bitweise Negation (d.h. Umkehr aller Bits), dann Addition von 1. 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 43 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 +1 1 1 0 1 0 1 0 1 43 0 0 0 0 0 0 1 0 2 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 0 2

43 Rechnen mit Dualzahlen Subtraktion Kann auf Vorzeichenumkehr und Addition zurückgeführt werden: x y = x + ( y) d.h.: x y = x + neg(y) + 1

44 Rechnen mit Dualzahlen Multiplikation Das Kleine Einmaleins der Dualzahlen: * 0 1 0 0 0 1 0 1 Sonst Vorgehen wie im Dezimalsystem, z.b. für 10*5: 00001010 * 101 00001010 00000000 00001010 0000110010 Probe: 32 + 16 + 2 = 50

45 Rechnen mit Dualzahlen Multiplikation (2er-Potenzen) 10er-Potenzen im Dezimalsystem: (z.b.: 15 1000 = 15 10 3 ) 15 15000 2er-Potenzen im Dualsystem: (z.b.: 5 16 = 5 2 4 ) 101 1010000 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0

46 Denksportaufgabe Wie könnte die Division ganzer positiver Dualzahlen funktionieren? Beispiele: 81 / 6 = 13, Rest 3 81 / 8 = 10, Rest 1?

47 Gleitkommazahlen Prinzip engl. floating point numbers 314159 10 5 oder 6,022 10 23 (nur eben mit Dualzahlen ) Prinzipdarstellung (32-Bit-Gleitkommazahlen): 1 7 1 23 V Exponent V Mantisse Zahlenwert = VM Mantisse 2VE Exponent Wertebereich 7 Bits ±2 27 = ±2 128 ±3.4 10 38 Genauigkeit 23 Bits 2 23 = 8388608 7 Dezimalstellen

48 Darstellung der Mantisse in der Form 0.x gedachter Dezimalpunkt vor der höchstwertigen Stelle: 0 b 22 b 0 Wert: b222-1 + b212-2 + b202-3 + + b12-22 + b02-23 Beispiele: 0.75 = 0.11 2 = 0.5 + 0.25 = 1 2-1 + 1 2-2 0.625 = 0.101 2 = 0.5 + 0.125 = 1 2-1 + 0 2-2 + 1 2-3 0.1 = 0.0001100110011001100110011 (periodisch!)

49 Gleitkommazahlen nach IEEE IEEE = Institute of Electrical and Electronics Engineers Mantisse wird in die Form 0.1xxx gebracht höchstwertige 1 wird nicht gespeichert (bringt ein zusätzliches Bit an Genauigkeit) z.b. 0.375 = 0.011 2 wird als 1000 0 gespeichert. normalisierte Darstellung zusätzliche Sonderdarstellungen für: denormalisierte Zahlen ±INF (Darstellung für ) NAN (= Not a number ; ungültige Zahl) ±0 (z.b. Ergebnis bei Division durch ±INF)

50 Gleitkommazahlen typische Größen Bits Dez.- Wertebereich Bytes Exp Mant. Stellen min max 4 8 23 7 8 1.5E 45 3.5E+38 8 11 52 15 16 5.0E 324 1.7E+308 10 16 63 19 20 1.9E 4951 1.1E+4932

51 Gleitkommazahlen beschränkte Genauigkeit Viele Zahlen sind nicht mehr exakt darstellbar, z.b.: 3 + 1 2-100 Mantisse = 11.000 (99 Nullen) 0001 kann auch im 10-Byte-Format nicht dargestellt werden. Rundungsfehler bei Rechenoperationen: Radius Umfang: u = r*2.0*pi; Umfang Radius: x = u/2.0/pi; if (x==r) { } // muss nicht mehr gelten besonders kritisch bei Kettenrechnungen (Rundungsfehler summieren sich) Niemals Gleitkommazahlen auf Gleichheit prüfen! Besser Prüfung auf Nähe: if (fabs(x-r)<=eps) { }

52 Festkommazahlen vermeiden Rundungsfehler (zumindest bei Addition, Subtraktion und Multiplikation) Idee: ganze Zahl mit gedachtem Dezimalpunkt und fester Zahl von Nachkommastellen d Beispiele mit d=3: 3.14 3140 42 42000 Prinzip: Man rechnet in anderen Einheiten (bei Geldbeträgen und d=3 beispielsweise in Milli-Euro ) Wertebereich wird dadurch beschränkt: Mit d=3 reichen 32-Bit-Zahlen nur noch bis 2 Mio.

53 Denksportaufgabe a) Gegeben: Zwei Festkommazahlen mit gleichem d z.b. 12.5 und 7.25 mit d=3 b) Wie kann man solche Zahlen addieren und multiplizieren? Was muss zusätzlich getan werden, wenn die Zahlen unterschiedlich viele Nachkommastellen haben, z.b. 4.56 (d=2) und 3.14159 (d=5)?

54 BCD-Zahlen werden im kaufmännischen Bereich gern verwendet, wenn Zahlen beliebig groß werden können. Idee: pro Byte 2 Dezimalziffern à 4 Bit; Byte-Ketten zur Darstellung der Zahlen können nach Bedarf beliebig verlängert werden. Für Milliardenbeträge mit Cent benötigt man 12 Dezimalstellen, also 6 Byte. Vorteile: exakt, beliebig lang, einfache Umwandlung in lesbare Zeichenkette Nachteil: aufwändige Rechenoperationen (müssen händisches Rechnen im Dezimalsystem nachbilden).

55 Diskretisierung und Digitalisierung Endliche Mengen von Werten (z.b. Buchstaben, Jahreszeiten, Tage des aktuellen Jahres) kann man durch ganze Zahlen darstellen. Unendliche Mengen (z.b. reelle Werte wie physikalische Größen) müssen durch endlich viele Werte angenähert werden.

56 Beispiel: Temperaturkurve stetig analog diskret digital C 16 15 14 13 12 11 10 8 9 10 11 12 13 14 Zeit C 16 Zeit C 8 11 15 9 12 14 10 13 13 11 13 12 12 14 11 13 15 14 16 10 8 Diskretisierung (Rasterung) 9 10 11 12 13 14 Zeit Digitalisierung (digit = Ziffer)

57 Digitalisiertes Bild 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 analog stetig analog diskret 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 digital

58 Eigenschaften binärer Codierung (1) Wählbare Genauigkeit durch Hinzunahme von Bits. Faustregel: 10 Bits 3 Dezimalstellen (weil 2 10 = 1024 1000 = 10 3 ) Speicherbarkeit mechanisch (Lochkarten, Lochstreifen), magnetisch (Magnetband, -platte, Diskette), optisch (CD) elektronisch (integrierte Schaltungen) Übertragbarkeit elektrisch (Spannung auf Leitung), elektromagnetisch (Funk) optisch (Lichtfaserleitung)

59 Eigenschaften binärer Codierung (2) Einfache Rechenoperationen im Dualsystem Geringe Störempfindlichkeit Zur Übertragung und Speicherung werden die Binärziffern in analoge Größen übersetzt. Binärziffer Spannung Frequenz 0 0 V 10 khz 1 5 V 12 khz 1 0 5 V 2.5 V 0 V

60 Speicherung von Daten Bytes: Wörter: Darstellung von Werten im Speicher meist byte-orientiert. Mehrere Bytes werden zu Speicherwörtern (typisch: 2, 4, 8 Bytes) zusammengefasst. Bytes sind im Speicher nummeriert; das erste Byte hat die Nummer 0. Bytenummer = Adresse 0 1 2 3 4 5 6 7 8 9 10 Größere Gruppen beginnen meist an durch 2 oder 4 teilbaren Adressen.

61 Der Begriff Byte Byte = Zusammenfassung von 8 Bits kleinste adressierbare Einheit (einzelne Bits haben keine Adressen) Byte wird auch als Maßeinheit benutzt (z.b. für Speicherkapazität von Medien) gängige Vielfache: 1 kbyte 1kB = 2 10 Byte = 1024 Byte ( 1000 Byte) 1 MByte 1MB = 2 20 Byte = 1048576 Byte ( 1 Mio. Byte) 1 GByte 1GB = 2 30 Byte = 1073741824 Byte ( 1 Mrd. Byte)

62 Einteilung von Daten Datentypen Datentyp Bezeichnung Speicherbedarf ganze Zahl Integer, int 1, 2, 4, 8 Byte natürliche Zahl Cardinal, Natural, unsigned int 1, 2, 4, 8 Byte Gleitkommazahl Real, float, double 4, 8, 10, 16 Byte Zeichen Char, Byte 1 oder 2 Byte Wahrheitswert Boolean, bool, Bit 1 Bit oder 1 Byte

63 Speicherung von Programmen (1) Auch Programme müssen im Speicher untergebracht werden (von Neumann). Programme bestehen aus Befehlen, die Operanden haben können. Beispiel: LOAD 2,1024 ADDI 2,1 STORE 2,1024 S 1024 R 2 R 2 +1 R 2 R 2 S 1024 Lade Register 2 mit Inhalt der Speicherzelle 1024 Addiere den Wert 1 zum Inhalt von Register 2 Speichere Register 2 unter der Adresse 1024 Endlich viele Befehle nummerieren als Zahlen codieren

64 Speicherung von Programmen (2) LOAD 2,1024 ADDI 2,1 STORE 2,1024 00000010 00000010 00000100 00000000 01000001 00000010 00000000 00000001 00000011 00000010 00000100 00000000 Befehl Register Adresse / Wert Daten und Programme werden gleich dargestellt. Im Speicher stehen Folgen von Bytes, die keine Mascherl haben.

65 Interpretation von Speicherinhalten Bitmuster 01100001 01100010 01100011 01100100 ASCII-Zeichen "abcd" Ganze Zahl 1633837924 Gleitkommazahl 0.760815 2-30 ( 7.08564 10-10 ) Wahrheitswerte false, true, true, false, false, false, Maschinenbefehl ADDL 2, 25444

66 Konsequenzen aus Bedeutungsvielfalt Fehlinterpretation von Speicherinhalten möglich (häufige Ursache von Programmfehlern) Uminterpretation von Speicherinhalten möglich (Konvertierungen, z.b. Zahl Zeichenkette) Uminterpretation von Befehlen als Zahlen und umgekehrt Programme können Programme verarbeiten! Ein ausführendes Programm bearbeitet ein anderes als Daten.

67 Programme als Daten Programme können andere Programme untersuchen (z.b. Debugger) verändern (z.b. Profiler, aber auch Computerviren) erzeugen (z.b. Compiler, Programmgeneratoren) Endlose Fortsetzung denkbar: Man kann Programme schreiben, die Programme erzeugen, die Programme erzeugen, In der Informatik typisch, in anderen Disziplinen selten oder gar nicht möglich. (Ausnahme Meta-Mathematik )