Das Maschinenmodell – Datenrepräsentation 0 1 0 0 1 1 1 0 Most

Werbung
Technische Universität München
Das Maschinenmodell – Datenrepräsentation
• Darstellung von Zahlen/Zeichen in der Maschine
– 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
0
0
Most Significant Bit
1
1
1
0
Least Significant Bit
– In einem Byte können 256 unterschiedliche Zustände repräsentiert werden:
000000  11111111
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Maschinenmodell – Datenrepräsentation
• Gängige Größen
210 Byte = 1 KiloByte
220 Byte = 1 MegaByte
230 Byte = 1 GigaByte
240 Byte = 1 TeraByte
250 Byte = 1 PetaByte
260 Byte = 1 ExaByte
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Maschinenmodell – Datenrepräsentation
• 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 Zeichensatz 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Datenrepräsentation
American
Standard
Code of
Information
Interchange
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Datenrepräsentation
• Erweiterung des 7-Bit ASCII-Codes
– Verfügbares MSB-Bit als Paritätsbit zur Erkennung von Übertragungsfehlern
• Setze MSB-Bit so, dass die 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.
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Datenrepräsentation
• 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• 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
Beispiel 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)
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• Umrechnung von Dezimalzahlen in Dualzahlen mit der
Restwertmethode (basierend auf dem Horner-Schema)
37 : 2 = 18
18 : 2 = 9
9:2= 4
4:2= 2
2:2= 1
1:2= 0
Rest 1 +------> 100101
Rest 0
Rest 1
Rest 0
Rest 0
Rest 1
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• Umrechnung von gebrochenen Zahlen durch Zerlegung in den
ganzzahligen und gebrochenen Teil
– Umrechnung des ganzzahligen Teils der Dezimalzahl
– Umrechnung des gebrochenen Anteils der Dezimalzahl mittels
fortgesetzter Multiplikation
0,2 · 2 = 0,4 --> 0
0,4 · 2 = 0,8 --> 0
0,8 · 2 = 1,6 --> 1
_________|
|
0,6 · 2 = 1,2 --> 1
_________|
|
0,2 · 2 = 0,4 --> 0
37.2 =
100101.00110
+------> 00110...
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
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
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• 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 ushort
– 4 Byte: Wertebereich von 0-(232 -1)
• Entspricht in einigen Programmiersprachen dem Typ ulong
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• Ganze Zahlen (Integer-Zahlen)
– Signed (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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• Ganze Zahlen (Integer-Zahlen)
– Signed (vorzeichenbehaftet)
– Alternative 2: Darstellung negativer Zahlen im Zweier-Komplement ( 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+1) Bits: -2n bis 2n-1
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• Reelle 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• IEEE-Norm 754 (Institute of Electrical and Electronics Engineers)
– Gleitkommazahl p (4 Bytes) wird dargestellt als
• p = (-1)s · 1.m · Be
• s = sign(m): Vorzeichenbit
• m: Mantisse
• B: Basis (wird nicht kodiert, da B = 2)
• e: Exponent
Bits
31 30 s
exp
1Bit
Vorzeichen
23 22
m
8Bit
23Bit
exp = e+127
Mantisse
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
0
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• 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 1 ist, wird es nicht kodiert (Hidden-Bit)
– 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• Gleitkommadarstellung in double
– 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Zahlenrepräsentation
• 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 (`schieben´ der Mantisse nach [1,10[ ):
• Verschieben der Mantisse um 4 Stellen nach links und …
• … gleichzeitiges Verringern des Exponenten um 4
• Ergebnis: 0 01111111100 1.10100...0
• p = +(1·20 + 1·2-1 + 0·2-2 + 1·2-3 + 0·2-4) · 21020-1023 = 0.203125
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Integer-Arithmetik
– Addition (mit 4 Bit Darstellung):
3
0011
+ 2 + 0010
-------5
0101
7
0111
+ 9 + 1001
-------16 (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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Integer-Arithmetik
12
01100
–5
– 00101 = 11010+1 = 11011
----- -------------7
100111
– Übertrag nur dann Overflow, wenn das Vorzeichen beider Zahlen gleich ist und
das Ergebnis ein anderes Vorzeichen hat
– Bsp: +(–12) + (–12) = 10100 + 10100 = 101000
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Integer-Arithmetik
5
00101
– 12 – 01100 = 10100
----- ----------–7
11001
Betrag von 11001 =
(durch Bildung des 2er-Komplement) 00111
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Integer-Arithmetik
– Algorithmus zur Multiplikation
• Nach denselben Regeln, nach denen Dezimalzahlen multipliziert werden
• Stellenweises multiplizieren des Multiplikanten mit dem Multiplikator und
addieren der Teilergebnisse
10111 * 01100
00000
00000
10111
10111
00000
100010100
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Integer-Arithmetik
– Optimierung der Multiplikation durch Bitverschiebung
• Verschieben um 1 Position nach rechts entspricht Division durch 2
• Verschieben um 1 Position nach links entspricht Multiplikation mit 2
– Algorithmus (X · Y):
1) Ergebnis = 0
2) wenn letztes Bit von Y = 1, dann addiere X zum Ergebnis
3) Verschiebe Y um eine Stelle nach rechts
4) Verschiebe X um eine Stelle nach links
5) wenn Y ungleich 0, dann wiederhole beginnend mit Schritt 2
6) Ende
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Integer-Arithmetik
– Multiplikation durch Bitverschiebung
– 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
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Integer-Arithmetik
– Division – mittels Addition, Subtraktion und Bitverschiebung
– Algorithmus (X / Y):
1) Quotient Q = 0, Rest = X, T = Y
2) Verschiebe T bis T > Rest (wie oft geht Y in X)
3) Wenn T = Y: Ende
4) Verdopple Q (<<1) und halbiere T (>>1)
5) Wenn T <= Rest: Rest = Rest – T und Q = Q+1
6) Wiederhole beginnend mit Schritt 3
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Gleitkomma-Arithmetik
– Addition/Subtraktion:
• Exponenten angleichen (Verschieben der Mantisse des Operanden mit
kleineren Exponenten
• Mantissen addieren/subtrahieren
• Ergebnis normalisieren
• Beispiel:
12 + 20 = (1.10 · 23) + (1.01 · 24) = (0.110 · 24) + (1.010 · 24) =
10,000 · 24 = 1 · 25
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Technische Universität München
Das Rechnermodell – Operationen auf Zahlen
• Gleitkomma-Arithmetik
– Multiplikation/Division:
• Multiplikation/Division der Mantissen
• Exponenten addieren/subtrahieren
• Ergebnis normalisieren
• Beispiel:
12 · 20 = (1.10 · 23) · (1.01 · 24) = 1.10 · 1.01 · 27 = 1.1110 · 27 = 240
Fakultät für Informatik, Einführung in die Informatik, WS 2010/11
Herunterladen