Zahlensysteme 1

Werbung
Grundlagen der Technischen Informatik
Zahlensysteme
Kapitel 4.5.1
Prof. Dr.-Ing. Jürgen Teich
Lehrstuhl für Hardware-Software-Co-Design
Grundlagen der Technischen Informatik
Beispiel: Troll-Counting
• “Hah! Yes? Everyone knows trolls can’t
even count up to four!”
• In fact, trolls traditionally count like this:
one, two, three, . . . many
[Fig. 0]
many one, many two, many three, many many
many many one, many many two, many many three,
many many many,
many many many one, many many many two,
many many many three,
Grundlagen der Technischen Informatik
2
LOTS
Beispiel: Troll-Counting
• Clever …
• … aber wir können das noch besser.
• Zählen mit den Zahlen {0, 1, 2, 3}:
0, 1, 2, 3, . . .
10, 11, 12, 13, . . .
20, 21, 22, 23, . . .
30, 31, 32, 33, . . .
100, 101, 102, 103, . . .
Grundlagen der Technischen Informatik
3
Beispiel: Zählen mit den Ziffern {0, 1, 2, 3}
• Basis R = 4 !
1  41 + 0  40 = 4
0, 1, 2, 3, . . .
10, 11, 12, 13, . . .
20, 21, 22, 23, . . .
30, 31, 32, 33, . . .
1  42 + 0  41 + 3  40 = 19
100, 101, 102, 103, . . .
Grundlagen der Technischen Informatik
4
Polyadische Zahlensysteme
• Polyadische Zahlensysteme geben den Ziffern ihren
Wert in Abhängigkeit von ihrer Stelle innerhalb einer
systematischen stellenorientierten Anordnung
• Die Stellenwerte entsprechen den Potenzen der Basis R
des jeweiligen Zahlensystems
Dezimalzahl:
5
4
2
Ziffer  {0, 1, 2, … 10-1}
• Polyadische Darstellung:
N = 5  102 + 4  101 + 2  100
Grundlagen der Technischen Informatik
5
Polyadische Zahlensysteme: Aufbau
• Beispiele:
168910
10223
10112
4112
= 1  103 + 6  102 + 8  101 + 9  100 = 1689
= 1  33 + 0  32 + 2  31 + 2  30 =
35
= 1  23 + 0  22 + 1  21 + 1  20 =
11
=
4  121 + 1  120 =
49
• Allgemein:
N
Aufbau einer Zahl N
=
dn-1  Rn-1 + ... + d1  R1 + d0  R0
N:
Zahl im Zahlensystem
R:
Basis, (Grundzahl, Radix) R  2
Ri :
Wertigkeit der i-ten Stelle
di:
Ziffer der Stelle i
Z:
Menge der Ziffern:
di Z = {0,1,2, ... , R-1}
Grundlagen der Technischen Informatik
6
Dualsystem (Binärsystem)
• Basis:
R2
Z2
= 2 (Basis)
= {0,1}
• Beispiel:
11012 = 1  23 + 1  22 + 0  21 + 1  20 = 13
Grundlagen der Technischen Informatik
7
Dualsystem (Binärsystem)
Dezimalzahlen
103
102
101
– Dualsystem:
• grundlegendes Zahlensystem für
numerische Verarbeitung digitaler
Daten (effizient in Hardware
darstellbar und verarbeitbar)
• Aber: sehr viele Ziffern zur
Darstellung notwendig
• Daher: oftmals 3 oder 4 Ziffern
zusammenfassen
 resultiert in Oktal- oder
Hexadezimalsystem
100
Dualzahlen
24
23
22
21
20
0
0
1
1
2
1
0
3
1
1
4
1
0
0
5
1
0
1
6
1
1
0
7
1
1
1
8
1
0
0
0
9
1
0
0
1
1
..
.
0
..
.
..
.
1
..
.
0
..
.
1
..
.
0
..
.
1
9
1
0
0
1
1
2
0
1
0
1
0
0
Grundlagen der Technischen Informatik
8
Oktalsystem
• Basis:
R8
Z8
=8
= {0,1,2,3,4,5,6,7}
• Beispiele:
Dezimal
Oktal
Dezimal
Oktal
Oktalzahlen
0
1
2
3
4
5
6
7
08
18
28
38
48
58
68
78
8
9
10
11
12
13
14
15
108
118
128
138
148
158
168
178
Grundlagen der Technischen Informatik
9
Hexadezimalsystem
• Basis:
R16
Z16
= 16
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
• Beispiele: Hexadezimalzahlen
Dezimal
Hex
Dezimal
Hex
0
1
016
116
17
18
1116
1216
…
…
158
… 9E16
9
10
11
12
13
14
15
16
916
A16
B16
C16
D16
E16
F16
1016
…
255
159
160
9F16 A016
161
162
163
164
A116 A216 A316 A416
Grundlagen der Technischen Informatik
10
… FF16
Hexadezimalsystem
• 1 Ziffer im Hexadezimalsystem entspricht genau 4 Ziffern
im Dualsystem
• 2 Ziffern im Hexadezimalsystem zusammengefasst sind
1 Byte (8 Bit)
Dezimal
0
1
Hex
016
116
Dual
02
12
Dezimal
Hex
17
18
1116
1216
…
9
10
11
12
13
14
15
16
916
A16
B16
C16
D16
E16
F16
1016
… 10012 10102 10112 11002 11012 11102 11112 100002
…
158
… 9E16
159
160
9F16 A016
Dual
161
162
163
164
A116 A216 A316 A416
1010 01002
Grundlagen der Technischen Informatik
11
…
255
… FF16
… 1111 11112
Wandlung von Zahlensystemen
•
•
•
Wenn die Basis R2 eines Zahlensystems die Potenz der Basis R1 eines
anderen Zahlensystems ist, so sind Zahlen zwischen diesen Systemen
sehr leicht umzuwandeln.
n
Also: R2 = R1
 n Stellen aus R1 zusammenfassen zu einer einzelnen Ziffer in R2
Umrechnung zwischen Dualsystem und Oktal- bzw.
Hexadezimalsystem:
Oktal (8=23)
Dual
Hex (16=24)
Dual
48
78
7
78
1002
1112
111 1112
111 100 0112
C16
516
C
C16
11002
01012
5
7
4
1100 0101 11002
Grundlagen der Technischen Informatik
12
38
1
2
416
0001 0010 01002
Polyadische Zahlensysteme: Wandlung
• Wandlung von Zahlensystemen:
– Wenn die Basis eines Zahlensystems die Potenz der Basis eines
anderen Zahlensystems ist, so sind Zahlen zwischen diesen
Systemen sehr leicht umzuwandeln
– Zusammenfassung von mehreren Stellen zu einer einzelnen
Ziffer
• Beispiel 1:
(
(
1011
0101
0001
)2



B
5
1
)16
5
2
1
)8



101
010
001
– Wandlung:
Dual- in
Hexadezimalsystem
• Beispiel 2:
(
(
– Wandlung:
)2
Oktal- in Dualsystem
Grundlagen der Technischen Informatik
13
Wandlung ins Dezimalsystem
• Falls keine besondere Beziehung zwischen den Basen
besteht, kann man die Umrechnung über das
Dezimalsystem durchführen
• Wandlung zunächst in das Dezimalsystem:
– Bekannte Formel:
• Beispiel:
N10 = dn-1  R10n-1 + ... + d1  R101 + d0  R100
(FA7E)16 = ?10
(
(
F
A
7
E




F163
+

(
+


61440
+
2560
7161
+
E160
)10

15163 + 10162 +

(
A162
)16
7161
+ 14160

+
112
)10

+
14
Grundlagen der Technischen Informatik
14
)10
= 6412610
Wandlung aus dem Dezimalsystem
• Durch Ganzzahldivision mit Rest kann Umwandlung vom
Dezimalsystem in System mit der Basis R durchgeführt
werden:
 Dezimalzahl wird durch R dividiert (Rest = Stelle d0),
 entstehende Quotienten rekursiv nach gleichem Schema
verarbeiten
...
Q u o tie n t 2
R
Q u o tie n t 1
R


N10
R

Quotient 3, Rest 2
Quotient 2, Rest 1
Quotient 1, Rest 0
d2
d1
d0
N10 = ( d2 d1 d0 )R
Grundlagen der Technischen Informatik
15
Polyadische Zahlensysteme: Wandlung
• Beispiel: Wandlung der Dezimalzahl 2016 in
Hexadezimalzahl
– Umrechnung von 201610 in das Hexadezimalsystem (R=16):
7
16
126
16
2016
16
=
=
=
0 Rest 7
7 Rest 14
126 Rest 0
E
0
7
201610 = 7E016
Grundlagen der Technischen Informatik
16
Elementare Rechenoperationen
• Automatisierte Rechenoperationen sind von zentraler
Bedeutung; Basisoperationen sind: +, -, *, /
• Rechnen kann man grundsätzlich in allen Systemen
• Im Dualsystem benötigt man besonders wenige Regeln.
Grundlagen der Technischen Informatik
17
Addition von Dualzahlen
• Regeln für die Addition:
•
•
•
•
Regel 0:
Regel 1:
Regel 2:
Regel 3:
0
0
1
1
+
+
+
+
0
1
1
1
=
=
=
+
0
1 + 0 = 1
10
1 = 11
• Damit Addition von Dualzahlen, wie beim schriftlichen Addieren
in der Grundschule:
1
+
1
Benutzte elementare Regel:
1
0
1
1
1
1
1
1
1
0
1
0
0
Übertrag
1 0
0
1
0
1
0
2
2
3
2
1
0
Grundlagen der Technischen Informatik
18
BCD-Code (Binary Coded Decimal)
• Umrechnung zwischen Dualsystem und Oktal- bzw.
Hexadezimalsystem durch Zusammenfassung von Ziffern
• Bei der oft gebrauchten Umwandlung vom Dezimalsystem in
das Dualsystem ist dies nicht möglich
• Daher BCD-Code (Binary Coded Decimal)
– Jede Dezimalziffer ist durch 4-Bit Dualzahl dargestellt
Tetraden:
Dezimal
Pseudotetraden:
BCD
Dezimal
BCD
(unbenutze Codewörter)
Dezimal
BCD
10
1010BCD
0
0000BCD
5
0101BCD
11
1
0001BCD
6
0110BCD
1011BCD
12
1100BCD
2
0010BCD
7
0111BCD
13
1101BCD
3
0011BCD
8
1000BCD
14
4
0100BCD
9
1001BCD
1110BCD
15
1111BCD
Grundlagen der Technischen Informatik
19
Rechnen im BCD-Code
•
Wie in den unterschiedlichen Zahlensystemen können auch
BCD-kodierte Zahlen verrechnet werden
Bei der BCD-Addition können aber Pseudotetraden entstehen
•
Zur Korrektur: zu Pseudotetraden und bei jedem Übertrag
muss noch 610 = 01102 addiert werden.
5 + 7 = 12
0101 + 0111 = 1100
+ 0110
Korrektur
0001 0010
1
2
Grundlagen der Technischen Informatik
20
Gleitkommazahlen
• Die bisher vorgestellten Codes haben das Problem, dass
durch die Anzahl der Codewörter auch der Zahlenraum
eingeschränkt ist
• Problem: den Ziffern sind feste Stellenwerte zugeordnet,
womit allenfalls sog. Festkommazahlen realisierbar sind
• Lösung: Angabe eines zusätzlichen Exponenten
• Die Darstellung von Zahlen durch Mantisse und
Exponent wird Gleitkommazahl genannt
• Beispiel:
- 1,2345  10
Vorzeichen
Mantisse
67
Exponent
Grundlagen der Technischen Informatik
21
Gleitkommazahlen
•
•
•
Gleitkommazahlen können auf unterschiedliche Weise kodiert
werden.
Daher hat der IEEE Richtlinien festgelegt, wie Gleitkommazahlen
dargestellt werden sollen.
Gleitkomma-Zahlendarstellung gemäß IEEE-Standard 754:
Vorzeichen
Exponent E
Mantisse M
2-1
V
Bit
31
30
23
2-2
2-3
2-4
2-5
... 2-21 2-22 2-23
22
Zahl = (-1)V · 2E-127 · 1,M
•
•
•
Vorzeichen: V = 0  positiv, V = 1  negativ
Mantisse: Die Mantisse ist normalisiert, d.h., dass vor dem Komma
genau eine 1 steht. Diese wird nicht gespeichert, sondern nur die
Nachkommastellen
Exponent: Der Exponent wird berechnet durch Subtraktion einer
Verschiebedistanz („Bias“): E - 127. Dadurch ist E immer positiv.
Grundlagen der Technischen Informatik
22
0
Gleitkommazahlen
Vorzeichen
Exponent E
Mantisse M
2-1
V
Bit
•
31
30
23
2-2
2-3
2-4
2-5
... 2-21 2-22 2-23
22
0
Spezialwerte werden durch besondere Bitmuster codiert:
Biased
Exponent E
Mantisse M
0 < E < 255
M
(- 1)V·2E-127 ·(1,M)
255
0
ungültiger Wert (NAN)
z.B. Division durch 0
255
0
(- 1)V ·  (unendlich)
Wert außerhalb des
Zahlenbereichs
0
0
0
0
Wert
(- 1)V·2-126 ·(0,M)
(- 1)V · 0
Grundlagen der Technischen Informatik
23
es gibt +0 und -0
Gleitkommazahlen nach IEEE-Standard
• Die Zahl  mit 7 Dezimalstellen hinter dem Komma im
IEEE-Format dargestellt:
  3,141592610 11,00100100001111110110102
 = ((-1)0 x 2128-127)10 x 1,100100100001111110110102
Darstellung:
0 10000000 10010010000111111011010
Grundlagen der Technischen Informatik
24
Abbildungsverzeichnis
• [Fig. 0] Terry Pratchett (1993). Men at Arms. ISBN: 0‐575‐05503‐0, Copyright © by Josh Kirby, Fair use, URL: https://en.wikipedia.org/w/index.php?curid=2092022.
Grundlagen der Technischen Informatik
25
Herunterladen