Informatikgrundlagen I Grundlagen der Informatik I Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik [email protected] Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik: Grundlagen der Informatik I 1 Inhalt 1. Einführung, Literatur, Begriffe 2. Zahlensysteme 3. Rechnen in den Zahlensysteme 4. Rechneraufbau 5. Nichtnumerische Informationen 6. HTML und CSS 7. XML FB Automatisierung und Informatik: Grundlagen der Informatik I 2 1 1. Zahlendarstellung: Sag, spielst du XVII und IV? Apfelmus in: René Goscinny, Albert Uderzo: Asterix und der Avernerschild. Auch wenn es heute manchmal in Vergessenheit gerät, der ursprüngliche Sinn der Computer war die Ausführung umfangreicher Rechnungen. Daher spielte für die Entwicklung der Rechentechnik die Zahlendarstellung eine wesentliche Rolle. Seit 1524 Adam Riese sein Rechenbuch veröffentlichte, hat sich in Europa das Dezimalsystem durchgesetzt. FB Automatisierung und Informatik: Grundlagen der Informatik I 3 Zahlensysteme: Neben dem Dezimalsystem sind alle weiteren Zahlensysteme die vor allem in der Informatik verwendet werden, sogenannte Stellenwertsysteme. – Definition - Stellenwertsystem: – Jede reelle Zahl wird durch eine Folge von Ziffern beschrieben: – Wie eine Ziffer zum Wert der Zahl beiträgt, hängt von ihrer Position bezüglich des Kommas ab. Sie wird dazu mit (B = Basis des Zahlensystems multipliziert. Für den Wert der Zahl ergibt sich damit: X = ±( ZmB m + Zm − 1B m −1 + ... + Z 1B1 + Z 0 B 0 + Z − 1B −1 + Z − 2 B −2 ...) +∞ X = ± ∑ ZµB µ ≈ ± µ = −∞ 123,4 = 123,4 = +n ZµB µ ∑ µ =−m 1⋅102 + 2⋅101 + 3⋅100 + 4⋅10-1 1⋅82 + 2⋅81 + 3⋅80 + 4⋅8-1 FB Automatisierung und Informatik: Grundlagen der Informatik I 4 2 Zahlensysteme: Bezüglich der Basis B und der zugelassenen Ziffern gilt folgende Übersicht, die in der Tabelle zusammengefasst ist: Zahlensystem Dualsystem Fünfersystem Siebenersystem Zahlenbasis B=2 B=5 B=7 Oktalsystem B=8 Dezimalsystem B=10 Hexadezimalsystem B=16 Ziffern 0, 1 0, 1, 2, 3, 4 0, 1, 2, 3, 4, 5, 6 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Beispiel 11111001100 30441 5551 3714 1996 7CC FB Automatisierung und Informatik: Grundlagen der Informatik I 5 Zahlensysteme: Nicht alle möglichen Zahlensysteme sind von gleicher Bedeutung für die Informatik. So haben Zahlensysteme mit der Basis B=5 oder B=7 keine Bedeutung. Deswegen werden diese nicht weiter betrachtet. Dem gegenüber sind in der Informatik alle Zahlensysteme, deren Basis eine Potenz von B=2 darstellt, von gleichwertiger Bedeutung. Dabei werden 1,3 oder 4 Bit zu einer Basis zusammengefasst. Die Hexadezimalziffern A, B, ..., F sind den Dezimalzahlen 10, 11, ..., 15 wertgleich. FB Automatisierung und Informatik: Grundlagen der Informatik I 6 3 Zahlensysteme: Besteht die Gefahr der Verwechselung, wird das benutzte Stellensystem durch Zusätze markiert. Folgende Notationsformen sind üblich: Dualsystem: 111110011002 Oktalsystem: 37148 Dezimalsystem: 199610 Hexadezimalsystem: 7CC16 FB Automatisierung und Informatik: Grundlagen der Informatik I 7 Beispiele: Dezimal-System Dual-System 5 7 15 8 12 ? ? ? 101 111 1111 ? ? 1110 00011 11001 FB Automatisierung und Informatik: Grundlagen der Informatik I 8 4 Beispiele: Dezimal-System Oktal-System 5 7 15 8 ? 12 ? ? ? 5 7 ? 8 17 ? 100 77 44 ? FB Automatisierung und Informatik: Grundlagen der Informatik I 9 Beispiele: Dezimal-System Hexadezimal-System 5 7 15 16 ? 12 ? ? 10 100 ? 5 ? ? ? 17 ? 11 100 ? ? 201 FB Automatisierung und Informatik: Grundlagen der Informatik I 10 5 Umrechnungstabelle für die weitere Berechnung: Dezimalsystem 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Dualsystem 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadezimalsystem 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F FB Automatisierung und Informatik: Grundlagen der Informatik I 11 Zahlenkonvertierung a) Berechnen der Binärzahl von 12 1310 = 8 + 4 +1 1310 = 1*23 + 1*22 + 0*21 + 1*20 = = 1101 Basis 2 = 11012 = = 1*8 + 1*4 + 0*2 + 1*1 Basis 2 = ....wiederholtes Ausklammern ... = (1*4 + 1* 2 + 0*1)*2 + 1*1 = ((1*2 + 1*1)*2+0*1)*2 + 1*1 FB Automatisierung und Informatik: Grundlagen der Informatik I 12 6 Zahlenkonvertierung b) 13 zur Basis 10 = 1101 zur Basis 2 denn: 13:2=6 Rest 1 6:2= 3 Rest 0 3:2= 1 Rest 1 1:2= 0 Rest 1 Das Konvertieren (Umwandeln) von Dezimalzahlen in Zahlen eines anderen Zahlensystems bzw. umgekehrt, oder zwischen den anderen Zahlensystemen basiert auf der Definition der Stellenwertsysteme. Daraus wurde ein Konvertierungsverfahren, das „Divisions-Restwert-Verfahren“, entwickelt, das allgemein einsetzbar ist (es beruht darauf, dass man nach Abspalten von Resten sukzessive versucht, den neuen Basiswert aus der verbliebenen Zahl „auszuklammern“ und dann nach Potenzen des neuen Basiswertes zusammenfasst). FB Automatisierung und Informatik: Grundlagen der Informatik I 13 Zahlenkonvertierung Beispiel - Umwandlung Dezimalzahl in Dualzahl: 45 : 2 22 : 2 11 : 2 = 22 = 11 =5 Rest: Rest: Rest: 5:2 2:2 1:2 =2 =1 =0 Rest: Rest: Rest: 4510 = X2 ? 1, also 45 = 22 · 2 + 1 0, also 45 = (11 · 2 + 0) · 2 + 1 1, also 45 = = ((5 · 2 + 1) · 2 + 0) · 2 + 1 = 5 · 23 + 1 · 22 + 0 · 21 + 1 · 20 1 0 1 Ergebnis: 4510 = 1011012 FB Automatisierung und Informatik: Grundlagen der Informatik I 14 7 Zahlenkonvertierung Beispiel - Umwandlung Dezimalzahl in Dualzahl: 2005 : 2 = 1002 1002 : 2 = 501 501 : 2 = 250 Rest: Rest: Rest: 250 : 2 125 : 2 62 : 2 31 : 2 15 : 2 7:2 3:2 1:2 Rest: Rest: Rest: Rest: Rest: Rest: Rest: Rest: = 125 = 62 = 31 = 15 =7 =3 =1 =0 200510 = X2 ? 1, also 2005 = 1002 · 2 + 1 0, also 2005 = (501 · 2 + 0) · 2 + 1 1, also 2005 = = ((250 · 2 + 1) · 2 + 0) · 2 + 1 = 250 · 23 + 1 · 22 + 0 · 21 + 1 · 20 0, ..... 1 0 1 1 1 1 1 Ergebnis: 200510 = 0111 1101 01012 FB Automatisierung und Informatik: Grundlagen der Informatik I 15 Zahlenkonvertierung Beispiel - Umwandlung Dezimalzahl in Dualzahl: 1996 : 2 = 998 998 : 2 = 499 499 : 2 = 249 Rest: Rest: Rest: 249 : 2 124 : 2 62 : 2 31 : 2 15 : 2 7:2 3:2 1:2 Rest: Rest: Rest: Rest: Rest: Rest: Rest: Rest: = 124 = 62 = 31 = 15 =7 =3 =1 =0 199610 = X2 ? 0, also 1996= 998 · 2 + 0 0, also 1996= (499 · 2 + 0) · 2 + 0 1, also 1996= = ((249 · 2 + 1) · 2 + 0) · 2 + 0 = 249 · 23 + 1 · 22 + 0 · 21 + 0 · 20 1, ..... 0 0 1 1 1 1 1 Ergebnis: 199610 = 0111 1100 11002 FB Automatisierung und Informatik: Grundlagen der Informatik I 16 8 Zahlenkonvertierung Kurz: Die berechnete Zahl im anderen Zahlensystem ergibt sich aus dem Nacheinanderschreiben der „Rest“-Werte von „unten“ nach „oben“. Oben ist immer das Komma Restwerte schreibt man auch mittels der „modulo“-Schreibweise: X mod 3 := Rest von X bis auf Vielfache von 3, oder allgemein: X mod Y := R mod Y, wenn X= n*Y + R mit 0<= R < Y und n,X,Y,R natürliche Zahlen (n, R ist dann eindeutig bestimmt). Beispiele: 5 mod 3 = 2 11 mod 7 = 24 mod 17 = 33 mod 16 = 63 mod 16 = 94 mod 16 = -2 mod 16 ⇒ –2 + a*16 = b, gesucht a und b, b∈ 0..15 FB Automatisierung und Informatik: Grundlagen der Informatik I 17 Zahlenkonvertierung Kurz: Die berechnete Zahl im anderen Zahlensystem ergibt sich aus dem Nacheinanderschreiben der „Rest“-Werte von „unten“ nach „oben“. Restwerte schreibt man auch mittels der „modulo“-Schreibweise: X mod 3 := Rest von X bis auf Vielfache von 3, oder allgemein: X mod Y := R mod Y, wenn X= n*Y + R mit 0≤ R < Y und n,X,Y,R natürliche Zahlen Beispiele: 5 mod 3 = 2 11 mod 7 = 4 24 mod 17 = 7 33 mod 16 = 1 63 mod 16 = 15 94 mod 16 = 14 , denn 5*16 + 14 = 94 oder 94 = 96 – 2 = 6*16 – 2 -2 mod 16 ⇒ -2 mod 16 ⇒ –2 + a*16 = b, gesucht a und b 14 mod 16, denn –2 + 1*16 = 14 FB Automatisierung und Informatik: Grundlagen der Informatik I 18 9 Zahlenkonvertierung modulo-Rechenregeln: (a * b) mod c = a mod c * b mod c (a + b ) mod c = a mod c + b mod c Übrigens: Streng (mathematisch) gesehen ist a mod c eine (Restklassen-)Menge: a mod c := { x ganze Zahl I x mod c = a mod c }, d.h. a mod c ist immer ein Vertreter aus dieser Restklassen-Menge. FB Automatisierung und Informatik: Grundlagen der Informatik I 19 Zahlenkonvertierung Beispiel: Umwandlung Dezimalzahl in Zahl zur Basis 5: 199610 = X5 ? 1996 399 79 15 3 Ergebnis: : : : : : 5 5 5 5 5 = = = = = 399 79 15 3 0 Rest: Rest: Rest: Rest: Rest: 1 4 4 0 3 199610 = 304415 Umwandlung Dezimalzahl in Zahl zur Basis 5: 201010 = X5 ? FB Automatisierung und Informatik: Grundlagen der Informatik I 20 10 Zahlenkonvertierung Beispiel: Umwandlung Dezimalzahl in Zahl zur Basis 7: 199610 = X7 ? 1996 285 40 5 Ergebnis: : : : : 7 7 7 7 = = = = 285 40 5 0 Rest: Rest: Rest: Rest: 1 5 5 5 199610 = 55517 Beispiel: Umwandlung Dezimalzahl in Zahl zur Basis 7: 200310 = X7 ? FB Automatisierung und Informatik: Grundlagen der Informatik I 21 Zahlenkonvertierung Aufgaben: a) Wandeln Sie die Zahl 21110 in Zahlen im Dual-, Oktal- und Hexadezimalsystem um! b) Wandeln Sie die Zahl CA16 in eine Zahl im 5’er Zahlensystem um! c) Wie groß ist die Zahl FE16 als Dezimalzahl? d) Wie groß ist die Zahl AFFE16 als Binärzahl? FB Automatisierung und Informatik: Grundlagen der Informatik I 22 11 Zahlenkonvertierung 21110 110100112 3238 D316 CA16 20210 33025 FE16 25410 AFFE 10101111111111102 FB Automatisierung und Informatik: Grundlagen der Informatik I 23 Zahlenkonvertierung zwischen 2, 8 und 16er-System Berechnung des Binärsystems: 471110 = 10010011001112 Damit ist es trivial, aus der Binär-Lösung sofort die weiteren Zahlen zu berechnen. Man fasst drei oder vier Bits zusammen: a) Dual nach Hexadezimal - Berechnen der Dualzahl - Zusammenfassen von 4 Bits, von rechts beginnend - 00010010011001112 = 1 0010 0110 01112 = 0001 0010 0110 01112 - Alle „vier Bits“ in eine hexadezimale Zahl umwandeln - 1 2 6 7 16 b) Dual nach Oktal - Berechnen der Dualzahl - Zusammenfassen von 3 Bits, von rechts beginnend - 00010010011001112 = 1 001 001 100 1112 = 001 001 001 100 1112 - Alle „drei Bits“ in eine hexadezimale Zahl umwandeln -1111478 FB Automatisierung und Informatik: Grundlagen der Informatik I 24 12 Zahlenkonvertierung Weitere Beispiele: a) b) CAFE16 ins 5-er System CAFE16 = 12 • 4096 + 10 • 256 + 15 • 16 + 14 = 5196610 51966 : 5 = 10393 Rest: 10393 : 5 = 2078 Rest: 2078 : 5 = 415 Rest: 415 : 5 = 83 Rest: 83 : 5 = 16 Rest: 16 : 5 = 3 Rest: 3 : 5 = 0 Rest: 5196610 = 31303315 1 3 3 0 3 1 3 AFFE ins Dezimalsystem AFFE16 = 10 • 4096 + 15 • 256 + 15 • 16 + 14 = 4505410 FB Automatisierung und Informatik: Grundlagen der Informatik I 25 2. Nachkommastellen Zahlen mit Nachkommastellen: 123,45678910 1*100 + 2*10 + 3*1 + + + + + + 4*0,1 5*0,01 6*0,001 7*0,0001 8*0,00001 9*0,000001 FB Automatisierung und Informatik: Grundlagen der Informatik I 26 13 Konvertierung von Zahlen mit Nachkommastellen Bei der Konvertierung von Nachkommastellen auf eine Darstellung zu einer neuen Basis geht man gerade umgekehrt vor: die Zahl wird mit der neuen Basis multipliziert und dann die Stelle vor dem Komma als neue Ziffer „abgespalten“ (sukzessive). Von oben nach unten notiert ergeben die Vorkommastellen gerade die neue Zifferndarstellung zur neuen Basis (durch „Ausklammern“ von Potenzen von 1/b). Beispiel: 0,687510 = Dualzahldarstellung ? 0,6875 * 2 0,375 * 2 0,750 * 2 0,500 * 2 = 1,375 = 0,750 = 1,500 = 1,000 Beispiel: 0,310 = Dualzahldarstellung ? vorne Abspalten: 1 Abspalten: 0 Abspalten: 1 Abspalten: 1 Ergebnis: 0,687510 = 0,10112 FB Automatisierung und Informatik: Grundlagen der Informatik I 27 Beispiele: Dezimal-System Dual-System 3,5 6,25 ? 33,046875 ? 0,1 5,2 11,100000 ? 1101,101 ? 101,1001 ? ? FB Automatisierung und Informatik: Grundlagen der Informatik I 28 14 3. Ganzzahl-Multiplikation und -Division Beispiele: 5510 = 1101112 55·2 = 11010 1610 = 100002 16/2 = 810 = 11011102 = 10002 FB Automatisierung und Informatik: Grundlagen der Informatik I 29 Multiplikation und Division Die binäre Multiplikation kann auf das Verschieben der Bitfolge nach links zurückgeführt werden. 5510 = 1101112 55·2 = 110111 SHL 1 = 11011102 Vorteil: Einfache und schnelle Implementierung FB Automatisierung und Informatik: Grundlagen der Informatik I 30 15 Multiplikation und Division Die binäre Division kann auf das Verschieben der Bitfolge nach rechts zurückgeführt werden. 11010 = 110/2 = 11011102 1101110 SHR 1 = 1101112 5510 55/2 1101112 110111 SHR 1 = 110112 = = FB Automatisierung und Informatik: Grundlagen der Informatik I = 27 31 16