Zahlensysteme

Werbung
Ingenieurinformatik WS05/06
Zahlensysteme
Inhalt:
1
Dualsystem ____________________________________________________________ 1
1.1
2
Dualzahlen mit Vorzeichen_____________________________________________ 4
Hexadezimalsystem______________________________________________________ 8
2.1
Hexadezimalzahlen mit Vorzeichen_____________________________________ 10
3
Oktalsystem ___________________________________________________________ 13
4
Zahlenring ___________________________________________________________ 14
Definition:
Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach
Potenzen von B zerlegt wird.
In der Informatik spricht man auch von Stellenwertsystem, d.h. einem System zur Darstellung
von Zahlen durch Ziffern, bei denen der Wert einer Ziffer von der Stelle abhängt, an welcher
sie innerhalb der Zahl geschrieben ist.
Beispiel: Dezimalsystem (mit der Basis 10)
1
3
1000 100
103
102
Zerlegung nach Potenzen der Basis 10:
3
10
101
3
1
100
Wertigkeit der Stellen
1*1000+ 3*100 + 3*10 +3*1 =1333
1 Dualsystem
Das Dualsystem (auch Binärsystem genannt) ist die Basis der heutigen Computer, da die
elementaren Schalt- und Speicherelemente nur über zwei mögliche Zustände verfügen, im
Allgemeinen EIN/AUS.
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
1
Ingenieurinformatik WS05/06
Das Dualsystem ist ein polyadisches Zahlensystem
• zur Basis 2.
• Es verfügt über einen Vorrat von zwei Ziffern, 0 und 1. (Das uns vertraute
Dezimalsystem verfügt über die zehn Ziffern, 0 1 2 3 4 5 6….9.)
• Beim Dualsystem steigt der Stellenwert einer Ziffer (Wertigkeit) von rechts nach links
in Potenzen zur Basis 2 (beim Dezimalsystem in Potenzen zur Basis 10, siehe Beispiel
oben).
Der darstellbare Zahlenbereich hängt von der Anzahl der Stellen ab.
Dies bedeutet allgemein:
Mit N Binärstellen bzw. einer Bitfolge der Länge N können dargestellt werden:
•
•
•
N=4
Natürliche Zahlen (positive ganze Zahlen)
von 0 bis 2N-1
Ganze Zahlen (positiv und negativ) zwischen -2N-1 und 2N-1 -1
Ein Intervall von reellen Zahlen mit begrenzter Genauigkeit
0 bis 15
-8 und 7
Natürliche Zahlen (Länge 4 Bit):
Dual
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
dezimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
2
Ingenieurinformatik WS05/06
Definition „Bit“ und „Byte“:
•
•
Bit: „basic indissoluble information unit“: In der Informationstheorie ist dies die
kleinste Einheit für den Informationsgehalt einer Nachricht.
o
Mit 1 Bit lassen sich 21 = 2 Zustände darstellen.
2
22
4
3
23
8
28
8
256
•
Die Zusammenfassung von acht Bit heißt Byte. Dies ist die minimale Länge eines
adressierbaren Datenworts. Der Rechner arbeitet immer mit Gruppen von Bits,
entweder mit 8 Bits (1Byte), 16 Bits (2Byte), 32 Bits(4Byte) oder 64 Bits (8Byte), d.h.
stets Vielfache von 8.
•
Kilo, Mega, Giga Byte:
1 KByte enthält nicht 1000 Bytes sondern 210 gleich 1024 Bytes!
20
1 MByte enthä lt 1024x1024 = 2 Bytes.
30
1 GByte enthält 1024x1024x1024 = 2 Bytes.
Beispiel: Gesucht Dezimaldarstellung der Dualzahl 10110 ?
1*24 + 0*23+1*22+1*21+0*20 =
16
+ 0 + 4 + 2 + 0
= 22
Gewichtsfaktoren der Stellen im Dualsystem:
28
27
26
25
24
23
22
21
20
256
128
64
32
16
8
4
2
1
216
215
214
213
212
211
210
29
65536 32768 16384 8192 4096 2048 1024
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
512
3
Ingenieurinformatik WS05/06
Beispiel: Gesucht Dualdarstellung der Dezimalzahl 1641 ?
1641 : 2 = 820
820 : 2 = 410
410 : 2 = 205
205 : 2 = 102
102 : 2 = 51
51 : 2 = 25
25 : 2 = 12
12 : 2 = 6
6:2=3
3:2=1
1: 2 = 0
Rest 1
Rest 0
Rest 0
Rest 1
Rest 0
Rest 1
Rest 1
Rest 0
Rest 0
Rest 1
Rest 1
„modulo“ heißt: 1641 mod 2 = 1
Ergebnis: (11001101001)2
Probe:
1+8+32+64+512+1024 = (1641)10
Bedeutet: Zahl ist Dezimalzahl (Basis 10)
1.1 Dualzahlen mit Vorzeichen
Das erste Bit (von links) wird als Vorzeichen Bit verwendet. Steht dort eine Null ist die Zahl
positiv. Steht dort eine 1, also das komplementäre Bit zu 0, handelt es sich um eine negative
Zahl. Dabei wird die Null bei als positive Zahl aufgefasst.
Darstellbarer Bereich für 4 Stellen:
Eine Stelle wird für das Vorzeichen Bit benötigt, d.h. es bleiben nur noch 3 Stellen und damit
3
2 = 8 Zahlen für den positiven Bereich und 8 Zahlen für den negativen. Da die Null als
positive Zahl aufgefasst wird, ergibt sich eine Unsymmetrie: -8 bis -1 und 0 bis 7
Ganze Zahlen (Länge 4Bit):
dual
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
dezimal
0
1
2
3
4
5
6
7
-8
-7
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
4
Ingenieurinformatik WS05/06
1010
1011
1100
1101
1110
1111
-6
-5
-4
-3
-2
-1
Komple mentbildung : Die negative Dual-Zahl ergibt sich, indem man bei der entsprechend
positiven Zahl stellenweise alle Nullen durch Eins ersetzt und umgekehrt ( d. h. alle Bits
invertiert) und eine Eins dazuaddiert. Die gleiche Regel gilt bei Umwandlung von negativer
nach positiver Zahl („Wohldefiniertheit“).
Hintergrund:
(nur für Informatik -Freaks!)
Um in Rechenautomaten mit einem reinen Addierwerk auskommen zu können, versucht man
die Subtraktion auf eine Addition zurückzuführen:
5
-5
__
0
5
+ (-5)
______
0
allgemein:
a–b=a+b -C
Probe:
wobei b := C – b
Komplement von b zu C
a–b=a+C–b -C
Bei den folgenden Betrachtungen wird davon ausgegangen, dass zur Darstellung einer
Binärzahl gerade N Binärstellen zur Verfügung stehen. Sollen nur positive Zahlen dargestellt
N
werden, so ist 2 -1 die größte in diesem Bereich darstellbare Zahl. Sie enthält in allen
Binärstellen eine Eins.
4
Bei 4 Binärstellen ist dies: 2 -1 = 15
1111
Wählt man:
C = 2N - 1 = 1111……111
Für Binärstellen N = 4:
C = 1111
heißt: 1er Komplement
15
Subtraktion von C – b (wobei für N=4 b 0,1,2,3 … 15 sein kann) lässt sich einfach
realisieren, indem man bei der N-stelligen Zahl b stellenweise alle Nullen mit Einsen
vertauscht und umgekehrt. Diese einfache Subtraktions- bzw. Komplementierungsregel der
stellenweisen Invertierung hat ihren Grund darin, dass die Zahl C in jeder Binärstelle eine
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
5
Ingenieurinformatik WS05/06
Eins enthält und somit bei der Subtraktion C – b nie von der nächst höheren Stelle „geborgt“
werden muss.
Die Subtraktion von C ist am bequemsten, wenn man sie gar nicht durchführen muss. Dies ist
mit
N
C = 2 = 1 0000…..00
( heißt: 2er Komplement)
mit N Nullen
gerade der Fall, da die Eins in der (N+1)ten Stelle nicht mehr im betrachteten Zahlenbereich
liegt.
N
Für Binärstellen N = 4 ist C = 2 = 10000
( 4 Nullen)
In die obige Gleichung C = 2N -1 einsetzen:
N
N
a - b = a + (2 -1 – b) - ( 2 ) + 1
Eins addieren
Bedeutet: Invertieren aller Bits von b
Bedeutet: eine Null substrahieren,
d.h. nichts ist zu tun
1.Beispiel: Binärstellen N = 4, a-b
a=6
0110
b=3
0011
Alle Bits von b invertieren, ergibt 1100
1 addieren, ergibt:
1101
a
+ (-b)
______
0110
+ 1101
_____________
(1) 0011
= 3
Überlauf fällt weg, da N = 4.
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
6
Ingenieurinformatik WS05/06
2.Beispiel: N = 4, a-b
a=3
b=7
0011
0111
invertieren:
1 addieren:
1000
+
1
________
1001
0011
+
1001
____________
1100 = -4
3. Beispiel: N = 4, a-b
a=5
b=5
0101
0101
1010
1
_____
(1)0000 = 0
Überlauf entfällt, da Zahl auf 4 Stellen beschränkt ist.
Achtung: Umwandeln einer Dualzahl in eine Dezimalzahl anhand der Gewichtsfaktoren gilt
nur für positive Dualzahlen. Wenn die Dualzahl mit Vorzeichen zu interpretieren ist und an
der ersten Binärstelle (von links) eine „1“ hat, also negativ ist, muss diese durch
Komplementbildung in die entsprechend positive Zahl (bzw. in ihren Betrag) konvertiert
werden. Diese ist mit den Gewichtsfaktoren umzurechnen.
Beispiel: Welchen Dezimalwert hat die mit Vorzeichen behaftete Dualzahl (10100)2.
Komplementbildung und 1 addieren:
01011
+
1
_____
01100
1*8 + 1*4 +0*2 + 0*1 = 12
Ergebnis: -12
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
7
Ingenieurinformatik WS05/06
Hexadezimalsystem
Polyadisches Zahlensystem
• zur Basis 16.
• Es verfügt über einen Vorrat von 16 Hexziffern, 0 bis 9, A, B, C, D, E, F.
• Der Stellenwert einer Ziffer (Wertigkeit) von rechts nach links steigt in Potenzen zur
Basis 16 (vgl. Gewichtsfaktoren).
hexadezimal dual
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
dezimal
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
10000
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Zusammenhang zum Dualsystem:
4 Bits ( sog. Halb-Byte) werden einer Hex-Ziffer zugeordnet.
Dadurch wird für den Menschen eine lange Folge von Nullen und Einsen übersichtlicher.
Gewichtsfaktoren der Stellen im Hexadezimalsystem:
165
1048576
164
163
65536
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
4096
162
256
161
160
16
1
8
Ingenieurinformatik WS05/06
Beispiel: Gesucht Dezimaldarstellung und Dualdarstellung für Hex-Zahl (9CB8)16 ?
Dezimaldarstellung: Gewichtfaktoren einsetzen
9*4096 + 12*256 + 11*16 + 8*1 = (40120)10
36864 + 3072 + 176 + 8
Dualdarstellung:
1.Möglichkeit: Sukzessive Division der Dezimalzahl 40120 durch 2
40120 : 2 = 20060
20060 : 2 = 10030
10030 : 2 = 5015
5015 : 2 = 2507
2507 : 2 = 1253
1253 : 2 = 626
626:2 = 313
usw.
Rest 0
Rest 0
Rest 0
Rest 1
Rest 1
Rest 1
Rest 0
2. Möglichkeit: Hexdezimal- Zahl direkt nach Dual umwandeln
9
C
B
8
(1001 1100 1011 1000) 2
Im Dualsystem werden 16 Binärstellen benötigt, im Hex-System ¼ der
Stellen.
Beispiel: Gegeben ist Dezimalzahl 5555. Geben sie die zugehörigen hex und binär Zahlen an.
5555 :16 = 347
347 : 16 = 21
21 : 16 =
1
1:
16 = 0
Rest 3
Rest 11
Rest 5
Rest 1
(1
5
B
3) 16
(0001 0101 1011 0011) 2
Frage: Wie viele hex-Stellen hat ein 16-bit Wort?
Antwort: 16/4 = 4 Stellen
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
9
Ingenieurinformatik WS05/06
Beispiel aus HTML:
Die Hintergrundfarben in HTML- Dokumenten werden in hex Zahlen angegeben. Der sog.
RGB-Wert ( „Red Green Blue“ Anteil) einer Farbe ergibt sich aus einer 6-stelligen Hex-Zahl,
jeweils 2 Stellen für einen Farbanteil.
z.B.
R G B
„# 00 00 00“
„# ff ff ff“
„# ff 00 00“
„ # 00 ff 00“
schwarz
weiß
rot
grün
Es können auf diese Weise 166 verschiedene Farben codiert werden ( 224 ca. 16,7 Mio ).
1.2 Hexadezimalzahlen mit Vorzeichen
(nur für Informatik -Freaks!)
mitVorzeichen
dual
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
hex
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
dez (signed)
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
ohne Vorzeichen
dez (unsigned)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
10
Ingenieurinformatik WS05/06
Hexadezimalzahlen mit erster Stelle (links) von 0 bis 7 sind positiv, von einschließlich 8 bis
F negativ.
Beispiel: 16 Bit (2 Byte), N = 16 , 216 = 65536
Bei nur positiven Zahlen (z. B. Datentyp unsigned short mit 2Byte ) liegt der Wertebereich
zwischen 0 und 65535. Die größte Zahl ist: (1111 1111 1111 1111)2 bzw. 65535.
Bei Zahlen mit Vorzeichen (z. B. Datentyp signed short mit 2Byte) liegt der Bereich zwischen
– 32768 und 32767. Die -1 hat die Binärdarstellung (1111 1111 1111 1111)2 .
Beispiel: Gegeben ist Hex- Zahl (9CB8)16. Gesucht dezimal und dual Darstellung.
1. Fall: Zahl wird nicht mit Vorzeichen (unsigned Datentyp) interpretiert:
(1001 1100 1011 1000) 2
9 * 163 + 12 * 162 + 11 * 161 + 8 = 40120
Ergebnis: 40120
2. Fall: Zahl wird mit Vorzeichen interpretiert:
•
•
Da erste Stelle (von links) größer als 8 ist, handelt es sich um eine negative Zahl.
Komplementbildung, um die entsprechende positive Zahl (bzw. den Betrag der Zahl)
zu erhalten. Dann Gewichtsfaktoren einsetzen.
1. Möglichkeit: Komplementbildung der Hex-Zahl
F F F F
15 15 15 15
12 11
9 C B 8
+
1
_____________
6 3
4 8
1er-Komplement: 164 - 1
Hilfszeilen
Komplementbildung und 1 addieren
6*163 + 3 * 162 + 4*161 + 8 = 25416
6*4096=24576
3*256=
768
4*16 =
64
8
-------------------25416
Ergebnis: -25416
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
11
Ingenieurinformatik WS05/06
2. Möglichkeit (bevorzugt verwenden!): Komplementbildung der entsprechenden
Dual-Zahl (Alle Bits invertieren und Eins
Addieren).
0110 0011 0100 0111
+
1
_______________________
0110 0011 0100 1000
( 6
3
4
8 )16
6*163 + 3 * 162 + 4*161 + 8 = 25416
Ergebnis: -25416
Beispiel: (2)10 entspricht bei 16 Bit (0002)16
Gesucht Hex-Darstellung von (-2)10 bei 16 Bit?
FFFD
+
1
__________
FFFE
Ergebnis: F F F E
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
12
Ingenieurinformatik WS05/06
2 Oktalsystem
Polyadisches Zahlensystem
• zur Basis 8.
• Es verfügt über einen Vorrat von 8 Ziffern, 0 bis 7.
• Der Stellenwert einer Ziffer (Wertigkeit) von rechts nach links steigt in Potenzen zur
Basis 8 (vgl. Gewichtsfaktoren).
•
Gewichtsfaktoren der Stellen im Oktalsystem:
84
83
82
81
80
4096
512
64
8
1
oktal
dual
dezimal
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
10000
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Beispiel: (177)8 in Dezimalzahl umwandeln.
1*64 + 7*8 + 7 = (127)10
Probe:
127 : 8 = 15 Rest 7
15 : 8 = 1 Rest 7
1 : 8 = 0 Rest 1
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
( 1 7 7 )8
13
Ingenieurinformatik WS05/06
3 Zahlenring
Dr.-Ing. K. Jäger-Hezel, 17.11.2005
14
Herunterladen