1. Stellenwertsysteme

Werbung
3. Mai 2005
Uni Regensburg, RZ, Braun
Datei: C: D DOKU KURSE STWRTS.TEX
\ \
\
\
1. Stellenwertsysteme
Wir schreiben Zahlen – ähnlich wie Mayas und Babylonier, anders als Römer und Griechen –
in einem sogenannten Stellenwertsystem. Stellenwertsysteme haben deutliche Vorteile beim
Manipulieren von Zahlen1 und haben sich deshalb durchgesetzt. Jede Zahl x kann mit einer
endlichen Menge von Symbolen ai geschrieben werden2 und wird auf eine festgelegte Basis
b bezogen. Es gilt:
x = . . . a2 a1 a0 .a−1 a−2 a−3 . . . = . . .+a2 ·b2 +a1 ·b1 +a0 ·b0 +a−1 ·b−1 +a−2 ·b−2 +a−3 ·b−3 +. . .
Derzeit sind im Alltag das Dezimalsystem mit der Basis b = 10 und in der EDV das
Dualsystem (b = 2), das Oktalsystem (b = 8) und das Sedezimalsystem (b = 16) in
Gebrauch. Das Sedezimalsystem wird auch als Hexadezimalsystem bezeichnet. Weiter
hat sich für bestimmte Größen3 das aus Babylonien stammende Sexagesimalsystem (b =
60) bis in unsere Zeit erhalten. Keilschrifttafeln belegen, daß dieses System bereits 1750
vor Christus entwickelt war und sogar schon von der Gleitpunktschreibweise Gebrauch
gemacht hat. Sprachlich existieren noch Relikte eines Duodezimalsystems (b = 12) und
eines Vigesimalsystems (b = 20) wenn von Dutzend oder in Frankreich von quatre-vingt die
Rede ist.
Ist ab jetzt die Basis unklar, so wird sie tiefgestellt als Dezimalzahl an die Zahl angehängt.
Für ein Zahlensystem mit der Basis b benötigt man b Ziffern von 0 bis b − 1. Ist b ≤ 10, so
verwendet man einfach einen Teil der vertrauten Dezimalziffern in der üblichen Bedeutung.
Oktalzahlen mit b = 8 schreibt man also mit den Ziffern 0, 1, 2, 3, 4, 5, 6 und 7. Für b = 2
hat sich gelegentlich statt der Ziffern 0 und 1 die Schreibweise mit O und L eingebürgert,
die hier nicht verwendet wird. Ist b ≤ 16, so verwendet man die Dezimalziffern und die
ersten 6 Buchstaben des Alphabets. Die Ziffern haben dabei die übliche Bedeutung, die
Buchstaben haben die Werte von 10 bis 15: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A = 10, B = 11, C =
12, D = 13, E = 14, F = 15. Diese Methode könnte bis maximal bis Basen b ≤ 36
ausgedehnt werden, was platzsparend wäre, aber unüblich ist. Für alle anderen Basen
wird eine bereits in Babylonien auf Keilschrifttafeln gebräuchliche Methode verwendet: Die
Ziffern werden im Dezimalsystem geschrieben und durch Komma getrennt. Das Komma
zwischen ganzzahligem und gebrochenen Teil wird dann als Semikolon geschrieben.
Als Kuriosität sei noch erwähnt, daß mathematisch auch völlig andersgeartete Basen möglich
sind. Negadezimalzahlen verwenden b = −10 und die üblichen 10 Ziffern, Quaterimaginärzahlen arbeiten
mit b = 2i und den Ziffern 0, 1, 2 und3. In einem Zahlensystem mit
√
der Basis b = 2 i und den Ziffern 0 und 1 hat schon die Zahl i eine unendlich lange,
nichtperiodische Darstellung! Weitere Beispiele finden sich bei D. E. Knuth: The Art of
Computer Programming, Vol. 2 Seminumerical Algorithms, Seite 166.
Beispiele:
1738 = 1 · 103 + 7 · 102 + 3 · 101 + 8 · 100 = 1 · 1000 + 7 · 100 + 3 · 10 + 8
1010012 = 1 · 25 + 0 · 24 + 1 · 23 + 0 · 22 + 0 · 21 + 1 · 20 = 1 · 32 + 0 · 16 + 1 · 8 + 0 · 4 + 0 · 2 + 1 = 41
1
Schreiben, Sortieren, Vergleichen, Rechnen
2
zum Vergleich: das römische Zahlsystem geht entweder nur bis 5000 oder benötigt eine unendliche
Symbolmenge
3
Winkel in Grad, Minuten und Sekunden, Zeit in Stunden, Minuten und Sekunden
1. Stellenwertsysteme
2
628 = 6 · 81 + 2 · 80 = 6 · 8 + 2 = 50
1AB216 = 1 · 163 + A · 162 + B · 161 + 2 · 160 = 1 · 4096 + 10 · 256 + 11 · 16 + 2 = 6834
J1A20 = J · 202 + 1 · 201 + A · 200 = 19 · 400 + 1 · 20 + 10 = 7630
Y 5A35 = Y · 352 + 5 · 351 + A · 350 = 34 · 1225 + 5 · 35 + 10 = 41835
10110.11012 = 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 + 1 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 =
= 1 · 16 + 0 · 8 + 1 · 4 + 1 · 2 + 0 + 1 ·
173.658 = 1 ·
82
+7·
1AB.E9B16 = 1 ·
81
162
80
+6·
8−1
161
+B·
160
+3·
+A·
+1·
1
2
+5·
8−2
+E·
1
4
+0·
1
8
+1·
1
16
= 22.81250
= 1 · 64 + 7 · 8 + 3 + 6 ·
16−1
+9·
16−2
+B·
16−3
+5·
1
8
1
64
= 123.82813
=
= 1 · 256 + 10 · 16 + 11 + 14 ·
59, 2, 23; 49, 9, 2260 = 59 · 602 + 2 ·
1
1
1
+ 9 · 256
+ 11 · 4096
= 427.91283
16
1
0
−1
60 + 23 · 60 + 49 · 60 + 9 · 60−2 + 22
= 59 · 3600 + 2 · 60 + 23 + 49 ·
1
60
+9·
1
3600
+ 22 ·
1
216000
· 60−3 =
= 212543.81926851
2. Umwandlung von Zahldarstellungen
Für Basen b1 , b2 ∈ IN, b1 , b2 ≥ 2 müssen in der Basis b1 dargestellte Zahlen gelegentlich in die
Darstellung zur Basis b2 umgewandelt werden. Dabei ist die Rechenbasis zu berücksichtigen:
Erfolgt die Rechnung mit Zahlen zur Basis b1 oder b2 ?4 Von Hand rechnet man meist
im Dezimalsystem, der Computer verwendet sein internes System, meist das Dualsystem.
Schließlich ist zu unterscheiden, ob ganze Zahlen oder Brüche zu konvertieren sind.
2.1. Rechnung in der Basis b2
Es genügt, einfach die Definition von Stellenwertzahlen zu verwenden. Beispiel zur Umrechnung finden sich in den allgemeinen Beispielen des letzten Abschnitts.
2.2. Umwandlung von ganzen Zahlen durch Rechnung in der Basis b1
Die Umwandlung erfolgt durch fortgesetzte ganzzahlige Division durch die Basis b2 mit Rest,
bis der Dividend 0 wird. Alle Reste beginnend beim letzten (also von unten her gelesen!)
ergeben die Ziffern der Zahl zur Basis b2 .
Beispiele:
1. Darstellung von 50 (Dezimalsystem, b1 = 10) im Oktalsystem (b2 = 8) durch Dezimalrechnung:
50/8 = 6 Rest 2
6/8 = 0 Rest 6
Die Reste 6 und 2 (von hinten her gelesen) ergeben die Oktaldarstellung 628 .
2. Darstellung von 6834 (Dezimalsystem, b1 = 10) im Sedezimalsystem (b2 = 16) durch Dezimalrechnung:
6834/16 = 427 Rest 2
427/16 = 26 Rest 11
26/16 = 1 Rest 10
1/16 = 0 Rest 1
Die Reste 1, 10, 11 und 2 (von hinten her gelesen) ergeben die Sedezimaldarstellung 1AB216 .
3. Darstellung von 7630 (Dezimalsystem, b1 = 10) im Vigesimalsystem (b2 = 20) durch Dezimalrechnung:
7630/20 = 381 Rest 10
381/20 = 19 Rest 1
19/20 = 0 Rest 19
Die Reste 19, 1 und 10 (von hinten her gelesen) ergeben die Vigesimaldarstellung 19, 1, 10;20 = J1A20 .
4
Mit einer dritten Basis b3 zum Rechnen muß man zweimal wandeln: b1 → b3 → b2
2.2. Umwandlung von ganzen Zahlen durch Rechnung in der Basis b1
3
4. Darstellung von I4AB19 (b1 = 19) im Dezimalsystem (b2 = 10) durch Rechnung zur Basis 19:
I4AB/A = 1F C8 Rest 7
1F C8/A = 38G Rest 0
38G/A = 6B Rest 1
6B/A = C Rest 5
C/A = 1 Rest 2
1/A = 0 Rest 1
Die Reste 1, 2, 5, 1, 0 und 7 (von hinten her gelesen) ergeben die Dezimaldarstellung 125107.
Mit der Methode von 2.1. erhält man dieses Ergebnis auch einfacher: i4ab19 = i · 193 + 4 · 192 + a · 191 + b · 190 =
18 · 6859 + 4 · 361 + 10 · 19 + 11 = 125107
Zur Rechnung wird das kleine 19er-Einmaleins
1 02 03 04 05 06 07
2 04 06 08 0A 0C 0E
3 06 09 0C 0F 0I 12
4 08 0C 0G 11 15 19
5 0A 0F 11 16 1B 1G
6 0C 0I 15 1B 1H 24
7 0E 12 19 1G 24 2B
8 0G 15 1D 22 2A 2I
9 0I 18 1H 27 2G 36
A 11 1B 22 2C 33 3D
B 13 1E 26 2H 39 41
C 15 1H 2A 33 3F 48
D 17 21 2E 38 42 4F
E 19 24 2I 3D 48 53
F 1B 27 33 3I 4E 5A
G 1D 2A 37 44 51 5H
H 1F 2D 3B 49 57 65
I 1H 2G 3F 4E 5D 6C
mit 192 = 361
08 09 0A
0G 0I 11
15 18 1B
1D 1H 22
22 27 2C
2A 2G 33
2I 36 3D
37 3F 44
3F 45 4E
44 4E 55
4C 54 5F
51 5D 66
59 63 6G
5H 6C 77
66 72 7H
6E 7B 88
73 81 8I
7B 8A 99
Einträgen
0B 0C
13 15
1E 1H
26 2A
2H 33
39 3F
41 48
4C 51
54 5D
5F 66
67 6I
6I 7B
7A 84
82 8G
8D 99
95 A2
9G AE
A8 B7
benötigt:
0D 0E
17 19
21 24
2E 2I
38 3D
42 48
4F 53
59 5H
63 6C
6G 77
7A 82
84 8G
8H 9B
9B A6
A5 B1
AI BF
BC CA
C6 D5
0F
1B
27
33
3I
4E
5A
66
72
7H
8D
99
A5
B1
BG
CC
D8
E4
0G
1D
2A
37
44
51
5H
6E
7B
88
95
A2
AI
BF
CC
D9
E6
F3
0H
1F
2D
3B
49
57
65
73
81
8I
9G
AE
BC
CA
D8
E6
F4
G2
0I
1H
2G
3F
4E
5D
6C
7B
8A
99
A8
B7
C6
D5
E4
F3
G2
H1
Als Beispiel sei die erste Division I4AB/A = 1F C8 Rest 7 vorgerechnet:
I
4 A B : A = 1 F C
8
− A
I/A=1 Rest 8
84/A=F Rest 6
8
4
6A/A=C Rest 4
− 7 H
4B/A=8 Rest 7
−
6
6
A
6
−
4
4
B
4
7
Es versteht sich von selbst, daß das letzte Beispiel nur theoretischen Wert und kaum andere Nutzanwendung hat.
2.3. Umwandlung von echten Brüchen durch Rechnung in der Basis b1
Die Umwandlung von echten Brüchen zwischen 0 und 1 erfolgt durch fortgesetzte Multiplikation mit der Basis b2 . Nach jeder Multiplikation ergibt der ganzzahlige Teil des Produktes
eine neue Ziffer, die vor der nächsten Multiplikation abgezogen werden muß. Die Umwandlung endet mit dem exakten Ergebnis, wenn die mit b2 zu multiplizierende Zahl Null wird;
sie endet mit einem unendlich langen, periodischen Ergebnis, wenn sich die mit b2 zu multiplizierende Zahl wiederholt, oder sie endet durch Abbruch, wenn genügend viele Stellen
berechnet wurden.
Beispiele:
1. Darstellung von 0, 14159 (Dezimalsystem, b1 = 10) im Sexagesimalsystem (b2 = 60)
0.14159 · 60 = 8.49540
2.3. Umwandlung von echten Brüchen durch Rechnung in der Basis b1
4
0.49540 · 60 = 29.72400
0.72400 · 60 = 43.44000
0.44000 · 60 = 26.40000
0.40000 · 60 = 24.00000
Die Ziffern ergeben sich aus den ganzzahligen Anteilen 0, 14159 = 0; 8, 29, 43, 26, 2460
2. Darstellung von 0, 14159 (Dezimalsystem, b1 = 10) im Dualsystem (b2 = 2)
0.14159 · 2 = 0.28318
0.28318 · 2 = 0.56636
0.56636 · 2 = 1.13272
0.13272 · 2 = 0.26544
0.26544 · 2 = 0.53088
0.53088 · 2 = 1.06176
0.06176 · 2 = 0.12352
0.12352 · 2 = 0.24704
0.24704 · 2 = 0.49408
0.49408 · 2 = 0.98816
Die Ziffern ergeben sich aus den ganzzahligen Anteilen 0, 14159 = 0, 001001000 . . .2
3. Darstellung von 0, 14159 (Dezimalsystem, b1 = 10) im Oktalsystem (b2 = 8)
0.14159 · 8 = 1.13272
0.13272 · 8 = 1.06176
0.06176 · 8 = 0.49408
0.49408 · 8 = 3.95264
0.95264 · 8 = 7.62112
0.62112 · 8 = 4.96896
Die Ziffern ergeben sich aus den ganzzahligen Anteilen 0, 14159 = 0, 1103747600 . . .8
4. Darstellung von 0, 14159 (Dezimalsystem, b1 = 10) im Sedezimalsystem (b2 = 16)
0.14159 · 16 = 2.26544
0.26544 · 16 = 4.24704
0.24704 · 16 = 3.95264
0.95264 · 16 = 15.24224
Die Ziffern ergeben sich aus den ganzzahligen Anteilen 0, 14159 = 0, 243F 3E037 . . .16
2.4. Umwandlung von Zahlen zwischen verwandten Basen
Als verwandt werden Basen bezeichnet, die Potenzen voneinander oder gemeinsame Potenzen einer kleineren Zahl sind. Beispiele: b1 = 10, b2 = 100 = 102 ; b1 = 2, b2 = 16 = 24 ;
b1 = 8 = 23 , b2 = 16 = 24 . Zwischen so verwandten Basen kann die Umwandlung ohne
Rechnung ziffernweise durchgeführt werden. Man benötigt lediglich eine kurze Tabelle für
die Ziffernübertragungen. Das ist auch der Grund für die häufige Benutzung der Basen 8
und 16 statt der Basis 2 in der Datenverarbeitung.
Beispiel:
Darstellung von 163578 (Oktalsystem, b1 = 8 = 23 ) im Sedezimalsystem (b2 = 16 = 24 )
16357, 268 = 001 110 011 101 111, 010 1102 = 001 1100 1110 1111, 0101 102 = 1CEF, 5816
Herunterladen