Das Rechnermodell

Werbung
Das Rechnermodell - Funktion
• Darstellung von Zahlen und Zeichen im Rechner
– Darstellung von Zeichen
• ASCII-Kodierung
– Zahlensysteme
• Dezimalsystem, Dualsystem, Hexadezimalsystem
– Darstellung von Zahlen im Rechner
•
•
•
•
•
•
Natürliche Zahlen
Ganze Zahlen -- INTEGER
Darstellung mit Vorzeichenbit
Darstellung im Zweierkomplemet
Reelle Zahlen -- REAL
REAL-Zahlen nach Mikroprozessornorm erhöht genaue
Zahlendarstellung
• Genauigkeit der internen Zahlenrepräsentation
• BCD-Kodierung dezimaler Zahl
Das Rechnermodell - Funktion
• Darstellung von Zahlen/Zeichen im Rechner
– Bit (0/1) ist die kleinste Informationseinheit
– Größere Einheiten durch Zusammenfassen mehrerer Bits,
z.B. 8 Bit = 1 Byte, 4 Byte = 1 Wort
1 Byte =
8 Bit
0
1
Most Significant Bit
0
0
1
1
1
Least Significant Bit
– In einem Byte können 256 unterschiedliche Zustände
repräsentiert werden
000000  11111111
0
Das Rechnermodell - Funktion
• Darstellung von Zeichen im Rechner
– Zeichen werden durch eindeutige Byte-Codes kodiert
– Der ASCII-Zeichensatz ist der "Urvater" aller Zeichensätze
• Er enthält 27 = 128 Zeichen
• Die lateinischen Grundbuchstaben, Zahlen und einige spezielle
Zeichen
• Er ist sozusagen der kleinste gemeinsame Nenner aller
anderen Zeichensätze
• Der erweiterte ASCII Zeichensatze enthält 28 = 256 Zeichen
– In der ersten Hälfte identisch mit dem 7 Bit ASCII Zeichensatz
– In der zweiten Hälfte enthält er je nach Sprache und
Computersystem verschiedene weitere Zeichen, z.B. Umlaute
Das Rechnermodell - Funktion
• 7 Bit ASCII Interchange-Kodierung von Zeichen
American
Standard
Code of
Information
Interchange
Das Rechnermodell - Funktion
• Erweiterung des 7-Bit ASCII-Codes
– Verfügbares MSB-Bit als Paritätsbit zur Erkennung von
Übertragungsfehlern
• Setze MSB-Bit so, daß Summe aller Bits gerade/ungerade
• Wenn nicht erfüllt, dann Übertragungsfehler
– Verfügbares MSB-Bit zur Erweiterung des Zeichensatzes
• z.B. länderspezifische Erweiterungen - ä ö ü ß etc.
Das Rechnermodell - Funktion
• Ein/Ausgabemedien müssen entsprechende
Zeichen-Codes senden/empfangen und darstellen
– z.B. Tastaturtreiber müssen ASCII Zeichen-Codes
generieren
– Das Aussehen der Zeichen wird durch die Schriftart oder
den Font festgelegt
• Können beliebig gewählt werden
• Geben vor, wie ein Zeichen auf dem Ausgabemedium erscheint
Byte-Wert (interne Repräsentation) 252
Zeichensatz, z.B. ASCII, 252 = ü
Schriftart (Font), realisiert
Zeichen
Das Rechnermodell - Funktion
• Repräsentation und Bearbeitung von Zahlen
– Zahlensysteme:
•
•
•
•
•
•
Repräsentation einer Zahl Z in einer Zahlenbasis
Z = i XiYi , (i  , 0  X  Y)
Y: Basis des Zahlensystems
X: Ziffernvorrat
Negative Exponenten beschreiben Nachkommastellen
Bsp.: Dezimalsystem: Y =10, 0  X  10
– Z = 3240.4 = 3·103 + 2·102 + 4·101 + 0·100 + 4·10-1
– Prinzipiell kann die Basis beliebig gewählt werden
• Gängige Basen sind Y = 2 (Binär), Y = 10 (Dezimal),
Y = 16 (Hexadezimal)
Das Rechnermodell - Funktion
• Dual- oder Binärzahlen
– Basis Y=2, Ziffernvorrat = 0,1 (repräsentiert durch 1 Bit)
– Bsp.: 01101100 =
0·27+1·26+1·25+0·24+1·23+1·22+0·21+0·20
• Hexadezimalsystem
– Basis Y=16, Ziffernvorrat 0-9, A-F
– Bsp.: 6A = 6·161 + 10·160 = 106
• Zur Umrechnung von Dualdarstellung in
Hexadezimaldarstellung splittet man 1 Byte in 2
Halbbytes
– 106 = 0110 1010 = 6A
Das Rechnermodell - Funktion
• Umrechnung von Dezimalzahlen in Dualzahlen
– Restwertmethode
37
18
9
4
2
1
:
:
:
:
:
:
2
2
2
2
2
2
=
=
=
=
=
=
18
9
4
2
1
0
Rest
Rest
Rest
Rest
Rest
Rest
1 +------> 100101
0
1
0
0
1
Das Rechnermodell - Funktion
• Umrechnung von gebrochenen Zahlen durch Zerlegung in den
ganzzahligen und gebrochenen Teil (Bsp: 37.2)
– Umrechnung des ganzzahligen Teils der Dezimalzahl
– Umrechnung des gebrochenen Anteils der Dezimalzahl mittels
fortgesetzter Multiplikation
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
--> 1
--> 1
--> 0
37.2 =
100101.00110
+------> 00110...
Das Rechnermodell - Funktion
• Beispiel Zahlenkonvertierung
dezimal binär hex
0
1
2
3
4
5
6
7
0000
0001
0010
0011
0100
0101
0110
0111
0
1
2
3
4
5
6
7
dezimal binär hex
8
9
10
11
12
13
14
15
1000
1001
1010
1011
1100
1101
1110
1111
8
9
A
B
C
D
E
F
Das Rechnermodell - Funktion
• Zahlendarstellung im Rechner
– Natürliche Zahlen (positive ganze Zahlen)
– Anzahl von darstellbaren Zahlen hängt ab von der Anzahl
von Bytes, die zur Repräsentation zur Verfügung stehen
– 1 Byte: Wertebereich von 0-255
• Entspricht in einigen Programmiersprachen dem Typ byte
– 2 Byte: Wertebereich von 0-65535
• Entspricht in einigen Programmiersprachen dem Typ short
– 4 Byte: Wertebereich von 0-(232 -1)
• Entspricht in einigen Programmiersprachen dem Typ int
Das Rechnermodell - Funktion
• Zahlendarstellung im Rechner
– Ganze Zahlen (Integer-Zahlen)
• Signed oder vorzeichenbehaftet
– Alternative 1: Reservierung eines Bits für das Vorzeichen
und Kodierung wie gehabt
• Zahlenbereich bei 8 Bit: -127 bis +127
• Es gibt +0 und -0
– Alternative 2: Darstellung negativer Zahlen im Zweierkomplement ( X=Bn+1-X )
• Negation aller Bits der positiven Zahl und anschließende
Addition von 1
• 106 = 0110 1010, -106 = 10010101+00000001 = 10010110
• Zahlenbereich bei n Bits: -2n bis 2n-1
Das Rechnermodell - Funktion
• Zahlendarstellung im Rechner
– Reele Zahlen (Gleitkomma-Darstellung)
– Genauigkeit der internen Repräsentation hängt ab von der
Anzahl von Bytes, die zur Repräsentation zur Verfügung
stehen
– 4 Byte:
• Entspricht in einigen Programmiersprachen dem Typ float
– 8 Byte:
• Entspricht in einigen Programmiersprachen dem Typ double
Das Rechnermodell - Funktion
• Zahlendarstellung im Rechner
– IEEE-Norm (Institute of Electrical and Electronics Engineers)
– Gleitkommazahl p (4 Bytes) wird dargestellt als
•
•
•
•
•
Bits
p = (-1)s · |m| · Be
s = sign(m): Vorzeichenbit
m: Mantisse
B: Basis
e: exponent
31 30
-
23 22
-
s
exp
m
1Bit
8Bit
23Bit
Vorzeichen exp = e+127
Mantisse
0
Das Rechnermodell - Funktion
• Gleitkommadarstellung
– In der Mantisse werden Werte von 0.0 bis 0.11...1 (Dual)
repräsentiert
• Bsp.: 0.12 = 1/2 = 0.5; 0.012 = 1/4 = 0.25
• Kleinste Zahl ist: 0.00..012 (1 in Position 2-23)
• Da das höchstwertige Bit immer 0 ist, wird es nicht kodiert
(Hidden-Bit)
Das Rechnermodell - Funktion
• Gleitkommadarstellung
– Den Wert des Exponenten erhält man durch Subtraktion
von 127 (Hälfte des Wertebereichs) von dem in den 8 Bit
dargestellten ganzzahligen Wert
• Werte von –127 bis 128 sind somit möglich
• -127 und 128 jedoch für Spezialfälle reserviert
• -127: 0, 128 (m=0): Infinity, 128(m0): NaN: ungültiger Wert
Das Rechnermodell - Funktion
• Gleitkommadarstellung
– Bei 8 Byte Darstellung:
•
•
•
•
s: 1 Bit
m: 52 Bit
e: 11 Bit
Höhere Genauigkeit, da Wertebereich
32-Bit-Genauigkeit: -3.402824·1038 bis 3.402824·1038
64-Bit-Genauigkeit: -1.797693·10 308 bis 1.797693·10308
Das Rechnermodell - Funktion
• Bsp.: Normalisieren einer 64-Bit-genauen
Gleitkommazahl p=(0.0001101002)·21
–
–
–
–
Interne Darstellung:
s=0; exp=(e=1)+1023; m=000110100...0
p: 0 10000000000 000110100...0
Normalisierung:
•
•
•
•
Verringern des Exponenten um 3 und gleichzeitiges ...
... Verschieben der Mantisse um 3 Stellen nach links
Ergebnis: 0 01111111101 110100...0
p=+(1·2-1 + 1·2-2 + 0·2-3 + 1·2-4) · 21021-1023=0.203125
Das Rechnermodell - Funktion
• Integer-Arithmetik
– Addition (mit 4 Bit Darstellung):
3
0011
+ 2 + 0010
--- -----5
0101
7
+9
--16
0111
+ 1001
-----(1)0000
Overflow
– Subtraktion durch Addition negativer Zahlen (Y-X=Y+X)
•
•
•
•
Y-X = Y–(X–2n+1+2n+1) = Y+2n+1–X–2n+1 = Y+X–2n+1
Negative Zahl wird hier im 2er-Komplement dargestellt
2er-Komplement: Bitweises negieren und addieren von 1
-0110 = (1001+1) = 1010
Das Rechnermodell - Funktion
• Integer-Arithmetik
12
01100
-5 -00101=11010+1=11011
-------------7 100111
– Übertrag nur dann Overflow, wenn Vorzeichen beider
Zahlen gleich und das Ergebnis ein anderes Vorzeichen hat
– Bsp: +(-12)+(-12) = 10100 +10100 =101000
Das Rechnermodell - Funktion
• Integer-Arithmetik
– Algorithmus zur Multiplikation
• Nach denselben Regeln, nach denen Dezimalzahlen
multipliziert werden
• Stellenweises multiplizieren des Multiplikanten mit dem
Multiplikator und addieren der Teilergebnisse
– Bsp.:
10111 * 01100
00000
00000
10111
10111
00000
100010100
Das Rechnermodell - Funktion
• Integer-Arithmetik
– Optimierung der Multiplikation durch Bitverschiebung
• Verschieben um 1 Position nach rechts = Division durch 2
• Verschieben um 1 Position nach links = Multiplikation mit 2
– Algorithmus (X*Y):
1)
2)
3)
4)
5)
Ergebnis = 0
wenn letztes Bit von Y = 1, dann addiere X zum Ergebnis
Verschiebe Y um eine Stelle nach rechts
Verschiebe X um eine Stelle nach links
wenn Y ungleich 0, dann wiederhole beginnend mit Schritt 2
Das Rechnermodell - Funktion
• Integer-Arithmetik
– Multiplikation durch Bitverschiebung
– Bsp.: 1001 x 1101
Wiederholung
1
2
3
4
Shift rechts
1101
110
11
1
Shift links
1001
10010
100100
1001000
1001 + 00000 + 100100 + 1001000
Ergebnis: 1110101
Das Rechnermodell - Funktion
• Integer-Arithmetik
– Division – mittels Addition, Subtraktion und Bitverschiebung
– Algorithmus (X/Y):
1)
2)
3)
4)
5)
6)
Quotient Q = 0, Rest = X, T = Y
Verschiebe T bis T>Rest (wie oft geht Y in X)
Wenn T = Y: Ende
Verdopple Q (<<1) und halbiere T (>>1)
Wenn T<=Rest: Rest=Rest-T und Q = Q+1
Wiederhole beginnend mit Schritt 3
Das Rechnermodell - Funktion
• Integer-Arithmetik
5
00101
-12 -01100=10100
--------------7 11001
Betrag von 11001=
(durch Bildung des 2er-Komplement) 00111
Das Rechnermodell - Funktion
• Gleitkomma-Arithmetik
– Addition/Subtraktion:
• Exponenten angleichen (Verschieben der Mantisse des
Operanden mit kleineren Exponenten
• Mantissen addieren/subtrahieren
• Ergebnis normalisieren
• Beispiel: 12 + 20 =
(110 · 24)+(101 · 25)=
(0110 · 25)+(1010 · 25)=
1,0000·25=1·26
Das Rechnermodell - Funktion
• Gleitkomma-Arithmetik
– Multiplikation/Division:
•
•
•
•
Multiplikation/Division der Mantissen
Exponenten addieren/subtrahieren
Ergebnis normalisieren
Beispiel: 12 · 20 =
(110·24)·(101·25)=
110·101·29=011110·29=11110·28=240
Herunterladen