Grundlagen der Informatik

Werbung
Mag. Christian Gürtler
Programmierung
Grundlagen der Informatik
2011
Inhaltsverzeichnis
I.
Allgemeines
1. Zahlensysteme
1.1. ganze Zahlen . . . . .
1.1.1. Umrechnungen
1.2. gebrochene Zahlen . .
1.3. negative Zahlen . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
5
7
8
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
ganzzahlig dividiert:
• Dualsystem: 1210 soll umgerechnet werden. (12 bedeutet ja 2 ∗ 100 + 1 ∗ 101 .
345 bedeutet beispielsweise 3 ∗ 102 + 4 ∗ 101 + 5 ∗ 100 ):
Rest
ganzzahlig
12
6
3
1
:
:
:
:
2
2
2
2
=
=
=
=
6
3
1
0
0
0
1
1
Tabelle 1.1.: Dualsystem
Die Ziffern des ganzzahligen Rests ergeben die Binärzahl (1100), wobei die unterste Ziffer
an die linke Stelle geschrieben wird. Die Kontrolle sieht so aus:
1100 = 0 ∗ 20 + 0 ∗ 21 + 1 ∗ 22 + 1 ∗ 23 .
• Oktalsystem: Es soll wieder die 1210 ins Oktalsystem umgerechnet werden, wobei jetzt die
Basis 8 gilt.
4
1. Zahlensysteme
1.1. ganze Zahlen
Rest
ganzzahlig
12
1
:8=
:8=
1
0
4
1
Tabelle 1.2.: Oktalsystem
Also ist 1210 umgerechnet 148 . Die Kontrolle wieder wie vorher: 148 = 1 ∗ 81 + 4 ∗ 80 .
Dies Oktalzahl kann auch durch Zusammenfassen 3er Bits aus einer Binärzahl errechnet
werden. 1210 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 1210 ins Hexadezimalsystem umgerechnet werden, wobei jetzt die Basis 16 gilt.
Rest
ganzzahlig
12
: 16 =
0
12
C
Tabelle 1.3.: Oktalsystem
Hier wird ersichtlich, warum 1216 nicht 12 sondern C ist, weil 1216 = 1∗161 +2∗160 = 1810 .
• Übung: Wandle folgende Zahlen um:
– 25510 ins Binärsystem
– 25510 ins Hexadezimalsystem
– 4505410 ins Hexadezimalsystem
– ABBA16 ins Oktalsystem
1.1.1. Umrechnungen
• Umrechnen einer Binärzahl in die Dezimalzahl
11002 ist von rechts nach links gelesen 0 · 20 + 0 · 21 + 1 · 22 + 1 · 23 also 1410 .
148 ist analog 4 · 80 + 1 · 81 als 1210 .
• Umrechnen von Dezimal nach Oktal:
– Variante 1:
5
1. Zahlensysteme
1.1. ganze Zahlen
Rest
ganzzahlig
255
31
3
:8=
:8=
:8=
31
3
0
7
7
3
Tabelle 1.4.: Oktalsystem
– Variante 2 (umrechnen nach binär und dann 3er-Gruppen bilden, indem 3 Bit zusammengefasst werden. Warum 3? Weil 23 = 8)
Rest
ganzzahlig
255
127
63
31
15
7
3
1
:
:
:
:
:
:
:
:
2
2
2
2
2
2
2
2
=
=
=
=
=
=
=
=
127
63
31
15
7
3
1
0
1
1
1
1
1
1
1
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 · 20 + 1 · 21 ) = 3
111 =(1 · 20 + 1 · 21 + 1 · 22 ) = 7
111 =(1 · 20 + 1 · 21 + 1 · 22 ) = 7
• Umrechnen dezimal nach hexadezimal
– Variante 1: (dividieren durch 16)
Rest
ganzzahlig
255
15
: 16 =
: 16 =
15
0
15
15
F
F
Tabelle 1.6.: Hexadezimalsystem
6
1. Zahlensysteme
1.2. gebrochene Zahlen
– Variante 2: umrechnen nach binär und dann 4er-Gruppen (24 = 16) bilden
Rest
ganzzahlig
255
127
63
31
15
7
3
1
:
:
:
:
:
:
:
:
2
2
2
2
2
2
2
2
=
=
=
=
=
=
=
=
127
63
31
15
7
3
1
0
1
1
1
1
1
1
1
1
Tabelle 1.7.: Binärsystem
1111
1111 ergibt FF
1111 =(1 · 20 + 1 · 21 + 1 · 22 + 1 · 23 ) = 15
1111 =(1 · 20 + 1 · 21 + 1 · 22 + 1 · 23 ) = 15
und weil 15 im Hexadezimalsystem F ist, ist 25510 FF16
• Umrechnen von Hexadezimal nach Dezimal
ABBA16
10 · 160 + 11 · 161 + 11 · 162 + 10 · 163 = 43962
Gegenprobe:
Rest
ganzzahlig
43962
2747
171
10
:
:
:
:
16
16
16
16
=
=
=
=
2747
171
10
0
10
11
11
10
A
B
B
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.3437510 .
7
1. Zahlensysteme
1.3. negative Zahlen
Überlauf
0.34375 · 2 =
0.6875 · 2 =
0.375 · 2 =
0.75 · 2 =
0.5 · 2 =
0·2=
0. 6875
1.375
0.75
1.5
1.0
0
0
1
0
1
1
0
Tabelle 1.9.: gebrochene Zahlen
Also ergibt 0.3437510 umgerechnet 0.0101102 .
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.110 .
Überlauf
0.1 · 2 = 0.2
0.2 · 2 = 0.4
0.4 · 2 = 0.8
0.8 · 2 = 1.6
0.6 · 2 = 1.2
0.2 · 2 = 0.4
..
.
0
0
0
1
1
0
..
.
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 Bits für die Zahl. Angenommen, es
werden 4 Bit für die Darstellung verwendet, so ist die kleinste darstellbare Zahl −8 (errechnet
aus −24−1 ), wobei die 4 für die Anzahl der Bits steht. Die größte Zahl ist 7 (errechnet aus
24−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
Herunterladen