Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011
Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen................................. 5 1.2. gebrochene Zahlen................................... 7 1.3. negative Zahlen..................................... 8 2
Teil I. Allgemeines 3
1 Zahlensysteme Das Dezimalsystem mit der Basis 10 ist nur für den Menschen interessant, in der Informatik spielen aber andere Zahlensysteme eine Rolle. Dualsystem (Binärsystem): Basis 2, daher gibt es nur 2 Zustände (2 Bits, 0 und 1) Oktalsystem: Basis 8; zur besseren Übersicht sind je 3 Bit zusammengefasst. Hier werden die Ziffern 0 bis 7 (in Summe 8 Ziffern) verwendet. Hexadezimalsystem: Basis 16; 4 Bit sind zusammengefasst 1.1. ganze Zahlen Beispiel einer Umrechnung einer Dezimalzahl in die jeweiligen Zahlensysteme. Dabei wird jeweils dividiert: Dualsystem: 12 10 soll umgerechnet werden. (12 bedeutet ja 2 10 0 +1 10 1. 345 bedeutet beispielsweise 3 10 2 +4 10 1 +5 10 0 ): 12 : 2 = 6 0 6 : 2 = 3 0 3 : 2 = 1 1 1 : 2 = 0 1 Tabelle 1.1.: Dualsystem Die Ziffern des en s ergeben die Binärzahl (1100), wobei die unterste Ziffer an die linke Stelle geschrieben wird. Die Kontrolle sieht so aus: 1100 = 0 2 0 +0 2 1 +1 2 2 +1 2 3. Oktalsystem: Es soll wieder die 12 10 ins Oktalsystem umgerechnet werden, wobei jetzt die Basis 8 gilt. 4
1. Zahlensysteme 1.1. ganze Zahlen 12 : 8 = 1 4 1 : 8 = 0 1 Tabelle 1.2.: Oktalsystem Also ist 12 10 umgerechnet 14 8. Die Kontrolle wieder wie vorher: 14 8 = 1 8 1 + 4 8 0. Dies Oktalzahl kann auch durch Zusammenfassen 3er Bits aus einer Binärzahl errechnet werden. 12 10 ist ja binär 1100; wenn die rechten 3 Bit zusammengefasst werden ergibt das 4 (100), mit der linken 1 ergibt sich 14. Hexadezimalsystem: Hier wird die Basis 16 verwendet, oder bei einer Binärzahl werden jeweils 4 Bit zusammengefasst. Hier werden die Ziffern 0 bis 9 verwendet, für 10 bis 15 werden Buchstaben eingesetzt (A für 10, B für 11 usw.). Es soll wieder die 12 10 ins Hexadezimalsystem umgerechnet werden, wobei jetzt die Basis 16 gilt. 12 : 16 = 0 12 C Tabelle 1.3.: Oktalsystem Hier wirdersichtlich, warum 12 16 nicht 12 sonderncist, weil 12 16 = 1 16 1 +2 16 0 = 18 10. Übung: Wandle folgende Zahlen um: 255 10 ins Binärsystem 255 10 ins Hexadezimalsystem 45054 10 ins Hexadezimalsystem ABBA 16 ins Oktalsystem 1.1.1. Umrechnungen Umrechnen einer Binärzahl in die Dezimalzahl 1100 2 ist von rechts nach links gelesen 0 2 0 +0 2 1 +1 2 2 +1 2 3 also 14 10. 14 8 ist analog 4 8 0 +1 8 1 als 12 10. Umrechnen von Dezimal nach Oktal: Variante 1: 5
1. Zahlensysteme 1.1. ganze Zahlen 255 : 8 = 31 7 31 : 8 = 3 7 3 : 8 = 0 3 Tabelle 1.4.: Oktalsystem Variante 2 (umrechnen nach binär und dann 3er-Gruppen bilden, indem 3 Bit zusammengefasst werden. Warum 3? Weil 2 3 = 8) 255 : 2 = 127 1 127 : 2 = 63 1 63 : 2 = 31 1 31 : 2 = 15 1 15 : 2 = 7 1 7 : 2 = 3 1 3 : 2 = 1 1 1 : 2 = 0 1 Tabelle 1.5.: Binärsystem Es werden von rechts beginnend 3er-Gruppen gebildet und diese ausgerechnet. 11 111 111 ergibt 377. Erklärung: 11 =(1 2 0 +1 2 1 ) = 3 111 =(1 2 0 +1 2 1 +1 2 2 ) = 7 111 =(1 2 0 +1 2 1 +1 2 2 ) = 7 Umrechnen dezimal nach hexadezimal Variante 1: (dividieren durch 16) 255 : 16 = 15 15 F 15 : 16 = 0 15 F Tabelle 1.6.: Hexadezimalsystem 6
1. Zahlensysteme 1.2. gebrochene Zahlen Variante 2: umrechnen nach binär und dann 4er-Gruppen (2 4 = 16) bilden 255 : 2 = 127 1 127 : 2 = 63 1 63 : 2 = 31 1 31 : 2 = 15 1 15 : 2 = 7 1 7 : 2 = 3 1 3 : 2 = 1 1 1 : 2 = 0 1 Tabelle 1.7.: Binärsystem 1111 1111 ergibt FF 1111 =(1 2 0 +1 2 1 +1 2 2 +1 2 3 ) = 15 1111 =(1 2 0 +1 2 1 +1 2 2 +1 2 3 ) = 15 und weil 15 im Hexadezimalsystem F ist, ist 255 10 FF 16 Umrechnen von Hexadezimal nach Dezimal ABBA 16 10 16 0 +11 16 1 +11 16 2 +10 16 3 = 43962 Gegenprobe: 43962 : 16 = 2747 10 A 2747 : 16 = 171 11 B 171 : 16 = 10 11 B 10 : 16 = 0 10 A Tabelle 1.8.: Hexadezimalsystem 1.2. gebrochene Zahlen Das Umwandeln von gebrochenen Zahlen erfolgt folgendermaßen: Hier wird nicht durch 2 dividiert sondern mit 2 multipliziert und der Überlauf(Ziffer links vom Komma) ergibt die Binärzahl. Beispiel an Hand von 0.34375 10. 7
1. Zahlensysteme 1.3. negative Zahlen 0.34375 2 = 0. 6875 0 0.6875 2 = 1.375 1 0.375 2 = 0.75 0 0.75 2 = 1.5 1 0.5 2 = 1.0 1 0 2 = 0 0 Überlauf Tabelle 1.9.: gebrochene Zahlen Also ergibt 0.34375 10 umgerechnet 0.010110 2. Die Gegenprobe ergibt sich aus 0 2 1 +1 2 2 +0 2 3 +1 2 4 +1 2 5 Zahlen mit Vor- und Nachkommastellen müssen jeweils getrennt behandelt werden. Problematisch wird es bei gebrochenen Zahlen, die bei der Umrechnung unendlich weiterlaufen würden, wie hier am Beispiel 0.1 10. 0.1 2 = 0.2 0 0.2 2 = 0.4 0 0.4 2 = 0.8 0 0.8 2 = 1.6 1 0.6 2 = 1.2 1 0.2 2 = 0.4 0. Überlauf. Tabelle 1.10.: gebrochene Zahlen Es hängt davon ab, wie viele Bits für Nachkommastellen bei der Umrechnung zur Verfügung stehen, generell ist aber ein Genauigkeitsverlust hinzunehmen. 1.3. negative Zahlen Für die Darstellung negativer Zahlen wird das sogenannte Zweierkomplement verwendet. Das erste Bit wird für das Vorzeichen verwendet, die restlichen 3 Bits für die Zahl. Angenommen, es werden 4 Bit für die Darstellung verwendet, so ist die kleinste darstellbare Zahl 8 (errechnet aus 2 4 1 ), wobei die 4 für die Anzahl der Bits steht. Die größte Zahl ist 7 (errechnet aus 2 4 1 1). Wie erfolgt die Bildung des Zweierkomplements? ➀ ist erstes Bit eine 1, dann ist die Zahl negativ ➁ danach jedes Bit invertieren ➂ danach 1 addieren 8
1. Zahlensysteme 1.3. negative Zahlen Beispiel einer Zahl mit 4 Bit ( 5) ➀ 5 ist 0101 ➁ invertiert: 1010 ➂ plus 1: 1011 Der Vorteil des Zweierkomplements liegt darin, dass ein Rechner keine Subtraktion beherrschen muss, er kann einfach mit negativen Zahlen addieren. Allerdings muss hier die korrekte Anzahl Bits verwendet werden, sonst kann es zu einem Pufferüberlauf kommen. Zum Beispiel ist 10 nicht mit 4 Bit darstellbar: 10... 1010 0101 1 dazu 0110...6 allerdings mit 5 Bit 10... 01010 10101 1 dazu 10110 Angenommen, es soll 2 4 ausgerechnet werden, so rechnet der Computer 2+( 4). 2... 0010 4... 1100 1110 Was ist nun 1110? Hier wird das Zweierkomplement retour durchgeführt: 1110 0001 invertiert 1 +1 0010...2 aber 2, da ja das erste Bit negativ war. 9
Index B Bit...4 P Pufferüberlauf...9 Z Zahlensysteme... 4 Binärsystem...4 Dualsystem... 4 Hexadezimalsystem... 4 Oktalsystem... 4 Zweierkomplement... 8 10