33
1 Vorkurs Informatik 2011 Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens Gallenbacher

Konzepte der Informatik - TU · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

  • Upload
    phamdat

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

1Vorkurs Informatik 2011

Konzepte der Informatik

Vorkurs Informatik zum WS 2011/2012

26.09. - 30.09.2011

17.10. - 21.10.2011

Dr. Werner Struckmann / Christoph Peltz

Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens Gallenbacher

Page 2: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

2Vorkurs Informatik 2011

Codierung

Verfahren, welches die Symbole einer Nachricht in eine andere Form bringt ohne den Informationsgehalt einzuschränken.

Codierung wird dazu verwendet, die Informationen von der für Menschen verständliche Form in eine für Maschinen verarbeitbare und über Netzwerke kommunizierbare Form umzuwandeln und wieder zurück.

Beispiel: Morsecode Code verwendet drei Symbole: Punkt (·), Strich (−) und Pause ( )

−− −−− ·−· ··· · −·−· −−− −·· ·

M O R S E C O D E

Quelle: Wikipedia

Page 3: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

3Vorkurs Informatik 2011

Aspekte der Binär-Codierung

Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung Informationsgehalt verschiedener Symbole Präfixbildung

Page 4: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

4Vorkurs Informatik 2011

Binärcode / 0/1-Code

Ein Binärcode besteht nur aus zwei Zeichen, 0 und 1. Diese beiden Zeichen repräsentieren die beiden Zustände „Ausgeschaltet“

und „Eingeschaltet“, welche von einem Computer gut verarbeitet werden können.

Binärcode

Page 5: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

5Vorkurs Informatik 2011

Dualsystem*

Zahlensystem, das nur zwei verschiedene Ziffern zur Darstellung von Zahlen benutzt

Zahlen werden nur mit Ziffern, welche die Werte Null oder Eins annehmen, dargestellt

Stellenwertsystem mit der Basis 2 Zahlen 0 bis 8:

Null: 0 Eins: 1 Zwei: 10 Drei: 11 Vier: 100 Fünf: 101 Sechs: 110 Sieben:111 Acht: 1000

* Quelle der Folien 5-14: Wikipedia

Binärcode

Page 6: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

6Vorkurs Informatik 2011

Definition und Darstellung von Dualzahlen

Ziffern zi werden wie im gewöhnlich verwendeten Dezimalsystem ohne Trennzeichen hintereinander geschrieben.

Beispiel: Dezimalzahl 29

29 = 1 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = [11101]2

Binärcode

Page 7: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

7Vorkurs Informatik 2011

Umrechnen von Dezimalzahlen in andere Stellenwertsysteme

Schreiben Sie die Dezimalzahl 42 als Dual-, Oktal- und als Hexadezimalzahl.

Dualzahl: 101010 Rechenweg: 42 : 2 = 21 Rest 0 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

Binärcode

Page 8: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

8Vorkurs Informatik 2011

Oktalzahl: 52 Rechenweg:

42 : 8 = 5 Rest 2 5 : 8 = 0 Rest 5

Hexadezimalzahl: 2A Rechenweg:

42 : 16 = 2 Rest 10 2 : 16 = 0 Rest 2

Binärcode

Page 9: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

9Vorkurs Informatik 2011

Dualzahlen

Verschiedene Darstellungsformen der Zahl dreiundzwanzig im Dualsystem:

[10111]2

101112

10111(2)

10111B 0b10111 HLHHH L0LLL

Binärcode

Page 10: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

10Vorkurs Informatik 2011

Grundrechenarten im Dualsystem

Addition Beispiel

0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10

Subtraktion Beispiel

0 − 0 = 00 − 1 = −11 − 0 = 11 − 1 = 0

Multiplikation Beispiel

0 0 = 00 1 = 01 0 = 01 1 = 1

Division Beispiel

0 / 0 = n.def.0 / 1 = 01 / 0 = n.def.1 / 1 = 1

Binärcode

Page 11: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

11Vorkurs Informatik 2011

Schriftliche Addition

A = 10011010 (154) B = 00110110 (54) Merker = 11111 ———————— Ergebnis = 11010000 (208) ‗‗‗‗‗‗‗‗

Binärcode

Page 12: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

12Vorkurs Informatik 2011

Schriftliche Subtraktion

Die Subtraktion verhält sich analog zur Addition.

0 − 0 = 0 0 − 1 = −1 1 − 0 = 1 1 − 1 = 0

Eine Zahl im Dualsystem kann von der anderen wie im folgenden Beispiel dargestellt subtrahiert werden:

Binärcode

Page 13: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

13Vorkurs Informatik 2011

Schriftliche Multiplikation

Wird im Dualsystem genauso durchgeführt wie im Dezimalsystem Beispiel: 1100 * 1101

1100 · 1101

———————————

1100

+ 1100

+ 0000

+ 1100

———————————

10011100

Binärcode

Page 14: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

14Vorkurs Informatik 2011

Schriftliche Division

1000010 : 11 = 10110 Rest 0 (= 22 im Dezimalsystem) − 011 ————— 00100 − 011 ———— 0011 − 011 ————— 000 − 00 ——— 0

Binärcode

Page 15: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

15Vorkurs Informatik 2011

American Standard Code for Information Interchange

ASCII ist der bekannteste Code. Es handelt sich dabei um eine Tabelle, in der alle Zeichen des (amerikanischen) Alphabets entsprechenden Sequenzen aus 0 und 1 zugeordnet werden.

_(Leer) 00000 H 01000 P 10000 X 11000 A 00001 I 01001 Q 10001 Y 11001 B 00010 J 01010 R 10010 Z 11010 C 00011 K 01011 S 10011 . 11011 D 00100 L 01100 T 10100 , 11100 E 00101 M 01101 U 10101 : 11101 F 00110 N 01110 V 10110 - 11110 G 00111 O 01111 W 10111 # 11111

Welche Weisheit mag sich wohl hinter dem Code „01001 00011 01000 00000 00100 00101 01110 01011 00101 11100 00000 00001 01100 10011 0111100000 00010 01001 01110 00000 01001 00011 01000“ verbergen?

Codetabellen

Page 16: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

16Vorkurs Informatik 2011

Codebaum

Ein Codebaum vereinfacht die Decodierung. Man geht einfach entlang des jeweiligen Pfads (0 oder 1) und sobald man an ein Symbol gelangt, schreibt man es auf und beginnt von Neuem.

Decodieren Sie „ 01000 00001 01100 01100 01111“.

Page 17: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

17Vorkurs Informatik 2011

Bits und Bytes

Byte (engl. „Bissen“) ist sozusagen ein Happen aus dem Datensalat eines Computers. Es stellt eine kleine Informationseinheit dar.

Bit ist englisch als Verkleinerungsform von Byte zu sehen und auch die Abkürzung für „Binary Digit“, also deutsch „Ziffer im Binärsystem“. Ein Bit ist also die kleinste Informationsmenge, die man im Computer identifizieren kann.

Da alle Symbole die gleiche Anzahl an Bit haben, können wir ganz einfach berechnen, wie viel Bit eine Nachricht mit 100 Zeichen hat :

100 Zeichen mal 5 Bit pro Zeichen gleich 500 Bit.

Page 18: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

18Vorkurs Informatik 2011

Einsparung von Bits

Codieren wir zum Beispiel eine Gen-Sequenz „AGATGCCGTTACGA“ mit diesem Code.

0000100111000011010000111000110001100111101001010000001000110011100001

Das macht genau 70 Bit. Wenn wir aber einen neuen Code hierfür nehmen, lässt sich die Anzahl der Bits auf

28 senken.

0010001110010110111100011000

Page 19: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

19Vorkurs Informatik 2011

Groß- und Kleinschreibung

Ohne Groß- und Kleinschreibung: „ICH HABE LIEBE GENOSSEN“

Mit Groß- und Kleinschreibung: „Ich habe liebe Genossen“ & „Ich habe Liebe genossen“

Wenn man die Groß- und Kleinschreibung einführt, enthalten alle Symbole mehr Informationen.

Page 20: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

20Vorkurs Informatik 2011

Informationsgehalt verschiedener Symbole

„an atte ieen are ei eine eient, a ra er u i ‚err, eine eit it eru, nun ote erne ieer ei u einer utter.‘“

In diesem Text stehen nur die Vokale (A,E,I,O,U) und die Konsonanten N, R und T, die meist verwendeten Buchstaben in unserer Sprache.

„Hns htt sbn Jhr b snm Hrrn gdnt, d sprch r z hm ‚Hrr, mn Zt st hrm, nn wllt ch grn wdr hm zu mnr Mttr.‘“

Der gleiche Text, nur fehlen hier alle Vokale. Allerdings ist er deutlich besser lesbar.

Hier noch einmal der Originaltext: „Hans hatte sieben Jahre bei seinem Herren gedient, da sprach er zu ihm‚ Herr,

meine Zeit ist herum, nun wollte ich gerne wieder heim zu meiner Mutter.‘“

Page 21: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

21Vorkurs Informatik 2011

Informationsgehalt verschiedener Symbole

Wenn man unterschiedliche Buchstaben entfernt, entfernt man also auch unterschiedlich viel Informationsgehalt. Das Weglassen von Vokalen scheint nicht so schlimm zu sein wie das von Konsonanten.

Das bedeutet, dass nicht jeder Buchstabe die gleiche Menge an Informationen enthält. Dann sollte es doch konsequent sein, wenn nicht jeder Buchstabe die gleiche Anzahl an Bits besäße. Wahrscheinlich könnte man dadurch auch die Größe einer Nachricht und damit die Übermittlungsdauer verringern.

Zum Beispiel beim Morsen: der häufigste Buchstabe in unserer Sprache ist das „E“, dieser wird nur als einzelner kurzer Ton gesendet. Das „Q“ hingegen wird viel seltener verwendet und besitzt beim Morsen auch einen längeren Code „lang lang kurz lang“.

Es liegt also nahe, auch bei der Codierung durch diese Methode Speicherplatz zu sparen.

Page 22: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

22Vorkurs Informatik 2011

Codebaum Optimierung

Verschieben Sie das „E“ um 2 Stellen nach links.

Page 23: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

23Vorkurs Informatik 2011

Codebaum Optimierung

Page 24: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

24Vorkurs Informatik 2011

Codebaum Optimierung

Jetzt versperren wir mit dem „E“ die Buchstaben „D“, „F“ und “G“

Page 25: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

25Vorkurs Informatik 2011

Präfix

Ein Präfix ist ein Wort oder eine Zeichenfolge, die mit dem Anfang einer anderen Zeichenfolge identisch ist. In der Codierung versucht man Präfixe zu vermeiden, da man dann codierte Nachrichten nicht mehr direkt decodieren kann.

„E“ ist mit seinem Code „001“ also die Präfix zu den Buchstaben „D“ („00100“), „F“ („00110“) und „G“ („00111“).

Präfixbildung

Page 26: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

26Vorkurs Informatik 2011

Präfixlösung

Um die drei Buchstaben wieder codierbar zu machen, müssen wir drei anderen Buchstaben einen längeren Code geben. Zum Beispiel „Q“, „X“ und „Y“, welche bei der Häufigkeit unter 0,05% liegen und daher nur sehr selten gebraucht werden.

So erhalten die „D“, „F“ und „G“ sowie „Q“, „X“ und „Y“ einen 6-stelligen Pfad. Wie viele Bits benötigt man für das Wort „GESELLE“ in den beiden Versionen?

Präfixbildung

Page 27: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

27Vorkurs Informatik 2011

Präfixlösung

Das selbe Verfahren lässt sich natürlich auch bei anderen Symbolen anwenden.

Zum Beispiel bei dem Leerzeichen, welches von allen Symbolen am häufigsten verwendet wird. Andere Satzzeichen wie Doppelpunkt ( : ), Gedankenstrich ( - ) oder die Raute ( # ) kommen hingegen nur sehr selten vor.

Nehmen wir also das Leerzeichen und verschieben es drei Stellen nach links. Dadurch blockieren die Buchstaben „A“, „B“ und „C“. Dann verschieben wir die Satzzeichen Doppelpunkt, Gedankenstrich und Raute um eine Stelle nach rechts und fügen die drei blockierten Buchstaben ein.

Präfixbildung

Page 28: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

28Vorkurs Informatik 2011

Präfixlösung

Präfixbildung

Page 29: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

29Vorkurs Informatik 2011

Präfixlösung

Allerdings ist „A“ auch ein Buchstabe, der häufig verwendet wird und ist mit einem 6-stelligen Code denkbar schlecht codiert. Demnach ist dies nicht die optimale Lösung für das Problem. Es muss also alles etwas freier im Codebaum getauscht werden.

Am besten wird es wohl sein, wenn das Leerzeichen sowie das „E“ 3 Bits erhalten, „N“, „I“, „S“ und „R“ jeweils 4 Bit, „A“, „T“, „D“, „H“, „U“, „L“, „C“ und „G“ 5 Bit, „Q“, Doppelpunkt, Gedankenstrich und Raute 7 Bit und die restlichen Zeichen 6 Bit erhalten.

Präfixbildung

Page 30: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

30Vorkurs Informatik 2011

Präfixlösung

Mit diesem Codebaum lässt sich nun die Bit Anzahl dieses Satzes: „HANS ZOG EIN TUECHLEIN AUS DER TASCHE, WICKELTE DEN KLUMPEN HINEIN, SETZTE IHN AUF DIE SCHULTER UND MACHTE SICH AUF DEN WEG NACH HAUS.“, welcher mit dem Anfangsbaum 670 Bit hätte, auf 552 Bit verringern.

Dieses Verfahren wird für Archive wie Zip, ARJ, RAR usw. genutzt. Diese Programme nutzen allerdings auch, dass ganze Worte häufig vorkommen und können somit bis über 90% Speicherplatz sparen.

Andere Verfahren komprimieren ganze Blöcke von Daten (bzip2) oder auch Teilwörter (LZ77, LZMA).

Präfixbildung

Page 31: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

31Vorkurs Informatik 2011

Moderne Text-Kodierung (UTF-8)

In Anbetracht der immer stärkeren Globalisierung und des Wunsches eine Kodierung für alle Sprachen der Welt anzubieten, wurde Unicode entwickelt. Unicode definiert Codepoints für eine vielzahl an Zeichen die benutzt werden (z.B. Griechisch, Arabisch, Chinesisch). Es gibt im aktuellen Standard 6 um die 1.1 Millionen definierte Codepoints.

Die effiziente Codierung der Texte ist hier äußerst wichtig. UTF-8 ist in den ersten 128 Codepoints identisch mit ASCII, das bedeutet, dass

die weit verbreiteten ASCII-Texte automatisch UTF-8 konform sind.

Page 32: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

32Vorkurs Informatik 2011

Moderne Text-Kodierung (UTF-8)

Ein UTF-8 Zeichen, dass mit einer 1 beginnt zeigt an, dass es entweder der Beginn eines Mehr-Byte-Zeichens oder Teil eines solchen Zeichens ist.

Ein UTF-8 Zeichen kann somit 1 bis 6 Byte lang sein, wobei die am häufigsten genutzten Zeichen in den unteren Code-Regionen zu finden sind.

Diese Kodierung ist selbstkorrigierend. Falls Teile eines Zeiches verloren gehen, ist nur das eine Zeichen betroffen, der Beginn eines neuen Zeichens kann ohne Probleme ermittelt werden.

Quelle (Grafik): Wikipedia

Page 33: Konzepte der Informatik - TU  · PDF fileVorkurs Informatik 2011 3 Aspekte der Binär-Codierung Binärcode Codetabellen Codebaum Einsparung von Bits Groß- und Kleinschreibung

33Vorkurs Informatik 2011

Vielen Dank für Ihre Aufmerksamkeit!