Technische Grundlagen der Informatik - fbi.h

Werbung
Technische Grundlagen der
Informatik
WS 2008/2009
15. Vorlesung
Klaus Kasper
WS 2008/2009
Technische Grundlagen der Informatik
1
Inhalt
• Wiederholung
– 2er-Komplement
2 K
l
– Overflow
– Little Endian / Big Endian
• Gleitkommadarstellung
– Konstruktion
– Normalisierte / denormalisierte Zahlen
WS 2008/2009
Technische Grundlagen der Informatik
2
Zahlendarstellung
WS 2008/2009
Technische Grundlagen der Informatik
3
Arithmetik
• Die zentrale Aufgabe von Computern ist
die Ausführung von arithmetischen
p
auf den codierten
Operationen
Nachrichten.
• Es gilt nun eine Darstellung zu finden
finden,
die für Berechnungen in Maschinen
besonders vorteilhaft ist.
WS 2008/2009
Technische Grundlagen der Informatik
4
Arithmetische Operationen
•
•
•
•
•
Ergebnis
g
der Multiplikation
p
von136 mit 14?
(136)10*(14)10 = (1904)10
Für welche Basis gilt: 136*14
136 14 = 2303
(136)7*(14)7 = (2303)7
Für die Durchführung arithmetischer
Operationen muss die verwendete Basis
bekannt sein
sein.
• Weiterhin können bestimmte Konventionen
der Darstellung verabredet werden
werden, die
ebenfalls bekannt sein müssen.
WS 2008/2009
Technische Grundlagen der Informatik
5
Umrechnung
(235)10 = ?2
235 : 2 = 117,Rest
117 Rest 1
117 : 2 = 58, Rest 1
58 : 2 = 29
29, R
Restt 0
29 : 2 = 14, Rest 1
14 : 2 = 7, Rest 0
7 : 2 = 3,, Rest 1
3 : 2 = 1, Rest 1
1: 2 = 0,
0 Rest 1
Test: 1+2+8+32+64+128
3
= 235
3
11101011
WS 2008/2009
Technische Grundlagen der Informatik
6
Elementare Zahlenmengen
• Natürliche Zahlen (positive ganze
Zahlen)
• Ganze Zahlen (positive und negative
ganze Zahlen)
• Rationale Zahlen (gebrochene Zahlen)
• Reelle Zahlen (gemischt gebrochene
Z hl )
Zahlen)
WS 2008/2009
Technische Grundlagen der Informatik
7
Zahlen in Rechnern
• Integer-Zahlen (natürliche und ganze
Z hl )
Zahlen)
• Festkomma
Festkomma-Zahlen
Zahlen (rationale und reelle
Zahlen mit eingeschränktem
Wertebereich)
• Gleitkomma-Zahlen (rationale und reelle
Zahlen mit erweitertem Wertebereich)
WS 2008/2009
Technische Grundlagen der Informatik
8
Wertebereiche von IntegerZ hl
Zahlen
• 8 Bit: -128 … 127
• 16 Bit: -32768 … 32767
• 32 Bit: -2
2 147 483 648 …
2 147 483 647
• 64 Bit: Dezimalzahl mit 19 Ziffern, ca.
1019
WS 2008/2009
Technische Grundlagen der Informatik
9
Was ist die Differenz?
∞
Z = ∑ xiY
i
a=
i =0
WS 2008/2009
Technische Grundlagen der Informatik
∞
∑ zb
i =−∞
i
i
10
Darstellung positiver Festkommazahlen
allgemeine
g
Form:
a=
∞
i
z
b
∑ i
i=−∞
Verwendung von n+1 Bits für Vorkommastellen und
m Bits für Nachkommastellen:
a=
i =n
∑
i =− m
zi bi
n −1
−1
= znb + zn −1b ... z1b + z0 + z−1b + ... z− mb
n
−m
Es ist Konvention
Konvention, die Ziffern mit absteigendem Index i als
Liste darzustellen und zwischen z0 und z-1 ein Komma
einzufügen.
WS 2008/2009
Technische Grundlagen der Informatik
11
Beispiel
Verwendung von n+1 Bits für Vorkommastellen und
m Bits für Nachkommastellen:
a=
i =n
∑
i =− m
zi bi
= znb n + zn −1b n −1... z1b + z0 + z−1b −1 + ... z− mb − m
−3
−1
10011012 = 2 + 2 + 2 + 2
1001,101
0
3
= 0,125 + 0,5 + 1 + 8
= 9,62510
WS 2008/2009
Technische Grundlagen der Informatik
12
Verschiedene Darstellungen von
Integer-Zahlen
g
Am Beispiel: 4 bit
WS 2008/2009
Technische Grundlagen der Informatik
13
Integer-Zahlen (ohne Vorzeichen)
WS 2008/2009
Technische Grundlagen der Informatik
14
Integer-Zahlen (Vorzeichen-Betrags-Darstellung)
Most Significant Bit (MSB)
d fi i t d
definiert
das V
Vorzeichen.
i h
g
Vorzeichenbit muss gesondert
ausgewertet werden.
Es existiert eine positive und
eine negative Darstellung der
Null.
Wertebereich:
−2
WS 2008/2009
n −1
Technische Grundlagen der Informatik
+1 ≤ Z ≤ 2
n −1
−1
15
Integer-Zahlen
g
((Binaryy Offset))
Der kl
D
kleinst
i t mögliche
ö li h W
Wertt
wird mit 0000… und der
größt mögliche Wert wird
mit 1111… dargestellt.
Wertebereich:
−2
WS 2008/2009
n −1
Technische Grundlagen der Informatik
≤Z ≤2
n −1
−1
16
Integer-Zahlen
g
((1er-Komplement)
p
)
Most Significant Bit (MSB)
d fi i t d
definiert
das V
Vorzeichen.
i h
positive Zahl: MSB = 0,
3 niederwertigen Bits
werden wie gewohnt ausgee tet
wertet
negative Zahl: MSB = 1,
3 niederwertigen Bits
werden invertiert und
anschließend ausgewertet
Wertebereich:
−2n −1 + 1 ≤ Z ≤ 2n −1 − 1
WS 2008/2009
Technische Grundlagen der Informatik
17
Beispiel 1er-Komplement
1er Komplement
-3 soll binär als 1er-Komplement dargestellt werden
binäre Darstellung
g des Betrags
g
((3))10 = ((011))2
Setzen des Vorzeichens und Komplement der Bits
((-3))10 = ((1100))22-1k
1k
WS 2008/2009
Technische Grundlagen der Informatik
18
Beispiel 1er-Komplement
a=(1001
a
(1001,0011)
0011)2-1k
2 1k
MSB =1
1
negative Zahl
Komplement aller Ziffern muss gebildet werden
|a| = (0110,1100)2
|a| = (6,75)10
Vorzeichen hinzufügen
a = (-6,75)10
WS 2008/2009
Technische Grundlagen der Informatik
19
Integer-Zahlen (2er-Komplement)
Most Significant Bit (MSB)
definiert das Vorzeichen.
positive Zahl: MSB = 0
0,
3 niederwertigen Bits
werden wie g
gewohnt ausgeg
wertet
negative Zahl: MSB = 1,
3 niederwertigen
i d
ti
Bit
Bits
werden invertiert, 1
addiert und anschließend
ausgewertet
Wertebereich:
−2
WS 2008/2009
n −1
Technische Grundlagen der Informatik
≤Z ≤2
n −1
−1
20
Vorteile 2er-Komplement
Darstellung
• Es existiert nur eine Null.
• Das Vorzeichenbit muss für Addition
gesondert ausund Subtraktion nicht g
gewertet werden.
• Signifikante Vereinfachung der
Berechnung.
• 2er-Komplement
2er Komplement wird in der Praxis fast
ausschließlich eingesetzt.
WS 2008/2009
Technische Grundlagen der Informatik
21
Beispiel 2er-Komplement
Zu berechnen: (6)10-(1)10 = (6)10 + (-1)10 = (5)10
(6)10: (0110)2
-1: Betrag 001, invertiert 110, 1 addiert 111
(-1)10: (1111)2-2k
0 1 1 0
+
1 1 1 1
Ergebnis: (0101)2-2k = (5)10
C 1 1 0
1 0 1 0 1
WS 2008/2009
Technische Grundlagen der Informatik
22
Beispiel 2er-Komplement
Zu berechnen: (4)10 + (5)10 = (9)10
(4)10: (0100)2
(5)10: (0101)2
0 1 0 0
Ergebnis: (1001)2-2k = (-7)10
+ 0 1 0 1
0 1 0 0
1 0 0 1
WS 2008/2009
Technische Grundlagen der Informatik
Overflow
23
Beispiel 2er-Komplement
Zu berechnen: (3)10-(6)10 = (-3)10
(3)10: (0011)2
-6:
6: Betrag 110
110, invertiert 001
001, 1 addiert 010
((-6))10: ((1010))22-2k
2k
0 0 1 1
+ 1 0 1 0
0 0 1 0
1 1 0 1
WS 2008/2009
101 invertiert 010
101,
010, 1 addiert 011
Ergebnis:
g
((1101))2-2k = ((-3))10
Technische Grundlagen der Informatik
24
Überlauf (Overflow, OV)
Ein Überlauf entsteht, wenn bei Operationen von 2er-Komplement-Zahlen
plement
Zahlen der Wertebereich überschritten wird.
wird
Ein Überlauf liegt dann vor, wenn beide Summanden ein
gleiches
l i h V
Vorzeichen
i h h
haben
b und
dd
das E
Ergebnis
b i ein
i anderes.
d
WS 2008/2009
Technische Grundlagen der Informatik
25
Beispiel 2er-Komplement
Zu berechnen: (-6)10-(7)10 = (-6)10 + (-7)10 = (-13)10
(-6)10: (1010)2-2k
(-7)10: (1001)2-2k
1 0 1 0
Ergebnis: (0011)2-2k = (3)10
+ 1 0 0 1
Overflow
1 0 0 0
1 0 0 1 1
WS 2008/2009
Technische Grundlagen der Informatik
26
OV-Tabelle
Addition 2er
2er-Komplement
Komplement
Summand
S
d
A
B
+
+
+
+
+
+
+
+
WS 2008/2009
-
Summe
S
Y
+
Flag
Fl
OV
0
+
+
1
0
-
0
0
0
+
-
1
0
Technische Grundlagen der Informatik
Carry (VZ)
C
Cin
Cout
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
27
Little Endian – Big Endian
Bei der Interpretation, z.B. einer Integer-Zahl, ist zu unterscheiden, ob
das least significant Byte an der höchsten Adresse („big endian“)
oder
d d
der niedrigsten
i d i t Ad
Adresse ((„little
littl endian“)
di “) gespeichert
i h t wird.
id
Beispielsweise Speicherung eines 4 Byte Integer:
MSB Æ Byte3 Byte2 Byte1 Byte0 Å LSB
Speicheradresse
BasisAdresse+0
as s d esse 0
BasisAdresse+1
BasisAdresse+2
BasisAdresse+3
Little Endian
Byte0
yte0
Byte1
Byte2
Byte3
Little Endian: PC (Intel,
(Intel
AMD), Apple (Intel), ...
WS 2008/2009
Big Endian
Byte3
yte3
Byte2
Byte1
Byte0
Big Endian: Apple
(Motorola), Sun, …
Technische Grundlagen der Informatik
28
Beispiel: -96
96
000 0000 0000 0000
FF A0
A0 FF
128 64 32 16 8 4 2 1
000 0000 0110 0000
Betrag
111 1111 1001 1111
1er Komplement
1er-Komplement
111 1111 1010 0000
2er-Komplement
2er
Komplement
1111 1111 1010 0000
WS 2008/2009
Vorzeichen
Technische Grundlagen der Informatik
29
Hex-Editor
Hex
Editor auf einem PC (Intel)
Hex-Darstellung
H
D t ll
in einem PC
WS 2008/2009
IInterpretation
t
t ti als
l
signed 2 Byte Integer
4F 00
79
FF FF
-1
1
A1 FF
-95
Technische Grundlagen der Informatik
30
Fazit: Integer
Integer-Zahlen
Zahlen
• Unmittelbare Interpretierbarkeit der
Darstellung ist für die Verwendung in
Rechnern von geringer Bedeutung
Bedeutung.
• Zentrale Bedeutung haben die Vereinfachung
von arithmetischen
ith ti h O
Operationen
ti
und
d eine
i
weitgehende Absicherung gegen Fehler wie
Üb l f
Überlauf.
• Optimale Darstellung hängt vom konkreten
Einsatz und den Anforderungen ab.
WS 2008/2009
Technische Grundlagen der Informatik
31
Darstellung
gg
gebrochener Zahlen
allgemeine
g
Form:
a=
∞
i
z
b
∑ i
i=−∞
Verwendung von n+1 Bits für Vorkommastellen,
m Bits für Nachkommastellen und 1 Bit für Vorzeichen:
a=
i =n
∑
i =− m
zi bi
n −1
−1
= znb + zn −1b ... z1b + z0 + z−1b + ... z− mb
n
−m
2er-Komplement
p
Darstellung:
g MSB zeigt
g das Vorzeichen an
Auswertung MSB = 1: negative Zahl; Betrag wird
komplementiert; im LSB wird 1 hinzuaddiert
WS 2008/2009
Technische Grundlagen der Informatik
32
Übung
Gesucht ist eine gebrochene Zahl a in Dezimal-Darstellung,
die als 2er-Komplement folgendermaßen codiert ist:
a = (1001,1100) 2− 2 k
Da MSB=1 handelt es sich um eine negative Zahl und
die Bits sind zu komplementieren:
(0110, 0011)
Außerdem muss das LSB um 1 erhöht werden
a = (0110,
(0110 0100) 2
Umwandlung ins Dezimalsystem:
WS 2008/2009
a = (−6, 25)10
Technische Grundlagen der Informatik
33
Festkomma Darstellung
Festkomma-Darstellung
• Verwendung von n+1 Vorkommastellen und
m Nachkommastellen zur Darstellung
Darstellung.
• Bedingt durch die Reservierung von m Bit für
Nachkommastellen ist das Intervall zwischen
größter und kleinster darstellbarer Zahl sehr
kl i
klein.
• Wie könnte es vergrößert werden?
• Durch
D h eine
i R
Reduktion
d kti d
der Bit fü
für
Nachkommastellen.
• Bessere Lösung: Gleitende Position des
Binärkommas.
WS 2008/2009
Technische Grundlagen der Informatik
34
Gleitkomma-Darstellung
g
• Anforderung:
g Für betragsmäßig
g
gg
große Zahlen
soll die Anzahl der Nachkommastellen reduziert werden und bei betragsmäßig
g
g kleinen
Zahlen soll die Zahl der Vorkommastellen
reduziert werden.
• Bei der Gleitkomma-Darstellung (engl
(engl.::
floating point representation) wird die Zahl a
mit Hilfe der Mantisse m und dem
Exponenten e zu einer Basis b dargestellt.
WS 2008/2009
Technische Grundlagen der Informatik
35
Beispiel
p
−123 i 10
Mantisse: -123
123
−7
= −0,
0 0000123
Exponent: -7
7
Basis: 10
Alternative Darstellungen
−6
−12,3 i 10 = −1, 23 i 10
−5
keine Eindeutigkeit in der Darstellung
WS 2008/2009
Technische Grundlagen der Informatik
36
Übung
Wie viele Nachkommastellen hat 1,25 * 10-2?
Wie viele Nachkommastellen hat 1,25 * 102?
1,25 * 10-2 = 0,0125
1,25 * 102 = 125,0
WS 2008/2009
Technische Grundlagen der Informatik
37
Normalisierte Gleitkommazahlen
In der normalisierten Darstellung hat die
Mantisse exakt eine Vorkommastelle.
± m0 , m1 ... m p −1 i b e , wobei m0 = 1
Für die Darstellung der Mantisse wird eine
feste Zahl von Stellen verabredet.
Für den
Fü
d E
Exponenten
t wird
i d ein
i W
Wertebereich
t b i h
[emin,emax] verabredet.
WS 2008/2009
Technische Grundlagen der Informatik
38
Übung
g
Annahmen: Wir haben eine normalisierte Darstellung.
Die Mantisse hat 2 Nachkommastellen in binärer
Darstellung. Der Exponent hat 3 bit inklusiv Vorzeichen. Als Basis wird 10 gewählt.
Berechnen Sie für benachbarte Zahlen:
- das betragsmäßig kleinste Intervall.
- das betragsmäßig größte Intervall.
0,25 * 10-3 = 0,00025
0 25 * 103 = 250
0,25
WS 2008/2009
Technische Grundlagen der Informatik
39
Darstellung der Null?
• Auf Grund der Verabredung für die
Mantisse kann m = 0,0 nicht dargestellt
werden.
• Daher wird die Null folgendermaßen
dargestellt:
10ib
1,
WS 2008/2009
emin
i −1
Technische Grundlagen der Informatik
40
Übung
Notieren
N
ti
Si
Sie bitt
bitte di
die normalisierten
li i t Gl
Gleitkommazahlen,
itk
hl
die auf der Basis der bisherigen Ausführungen bei Verwendung von 2 Nachkommabits (x,xx)
(x xx) für die Mantisse,
Mantisse
emin=-1, emax=2 und b=2 dargestellt werden können. Stellen
Sie die Liste bitte in Dezimaldarstellung auf.
1,00*2-2
0
1,00*21 2
-1
,
1,00*2
0,5
,
1 2,5
,
,
1,01*2
1,01*2-1
0,625
1,10*21 3,0
1,10*2-1
0,75
1,11*21
1,11*2-1
0,875
1,00*22 4
1,00*20
1,0
1,01*22 5
1,01*20
1,25
1,10*22 6
1,10*20
1,5
1,11*22
1,11*2
1
11*20
1 75
1,75
WS 2008/2009
3,5
Problem?
7
Technische Grundlagen der Informatik
41
Denormalisierte Zahlen
1,00*20 – 1,11*2-1 = ?
In unserem Zahlensystem lautet das Ergebnis: 1,00 * 2-2
Anweisung: if (X != Y) then Z = 1/(X
1/(X-Y)
Y)
0 und Y=1,11*2
-1?
Was p
passiert für den Fall X=1,00*2
,
,
Laufzeitfehler, da durch 0 geteilt wird!
Für e=emin wird m0=0 zugelassen.
Die so eingeführten Zahlen werden als denormalisierte
oder subnormale Zahlen bezeichnet.
bezeichnet
WS 2008/2009
Technische Grundlagen der Informatik
42
Übung (erweitert)
Notieren Sie bitte die normalisierten und denormalisierten
Gleitkommazahlen,, die auf der Basis der bisherigen
g
Ausführungen bei Verwendung von 2 Nachkommabits (x,xx)
für die Mantisse, emin=-1, emax=2 und b=2 dargestellt werden
können. Stellen
S
S die Liste bitte in Dezimaldarstellung auf.
Sie
f
WS 2008/2009
Technische Grundlagen der Informatik
43
Erweitertes Beispiel
1,00*2-2
0
1,00*21 2
0,01*2-1
0,125
1,01*21 2,5
0,10*2-1
0,25
1,10*21 3,0
0,11*2-1
0,375
1,11*21
1,00*2-1
0,5
1,00*22 4
1,01*2-1
0,625
1,01*22 5
1,10*2-1
0,75
1,10*22 6
1,11*2-1
0,875
1,11*22
1,00*2
1
00*20
10
1,0
1,01*20
1,25
1 10*2
1,10
20
15
1,5
1,11*20
1,75
WS 2008/2009
Technische Grundlagen der Informatik
3,5
7
44
Definition eines GleitkommaGleitkomma
Zahlensystems
•
•
•
•
•
Basis (base, radix) b >= 2
Mantissenlänge (precision) p >= 2
kleinster Exponent emin < 0
größter Exponent emax > 0
N
Normalisierungsindikator
li i
i dik t d
denorm,
hierbei handelt es sich um einen
W h h it
Wahrheitswert
t (true
(t
b d t t dass
bedeutet,
d
denormalisierte Zahlen enthalten sind)
WS 2008/2009
Technische Grundlagen der Informatik
45
Beispiele
• Ei
Ein Gl
Gleitkomma-Zahlensystem
itk
Z hl
t
kkann
durch F(b,p,emin,emax,denorm) definiert
werden.
d
• Intel x86-Prozessoren einfach genau:
g
F(2,24,-126,127,true)
• Intel x86-Prozessoren
x86 Prozessoren doppelt genau:
F(2,53,-1022,1023,true)
• Die beiden Beispiele folgen der IEEE
Norm 754.
WS 2008/2009
Technische Grundlagen der Informatik
46
IEEE, single
g p
precision I
• F(2,24,-126,127,true)
( , ,
,
,
)
• ca. 4,26 * 109 normalisierte und ca. 1,7 * 107
denormalisierte Gleitkommazahlen können
dargestellt werden
, * 10-38
• kleinster Wert ca. 1,18
• größter Wert ca. 3,40 * 1038
• IEEE 754 Norm für Gleitkommazahlen wurde
erst im Jahr 1989 verabschiedet.
• Sie ist als IEC 559:1989 auch internationale
Norm.
WS 2008/2009
Technische Grundlagen der Informatik
47
IEEE, single precision II
Z = ( −1)S iM i2E −O ,
wobei O = 127
WS 2008/2009
Technische Grundlagen der Informatik
48
IEEE single precision (Beispiel)
IEEE,
Beispiel: 45.625
45 62510
• Fraktion f = 01101101 (beachte 1.01101101)
bit 0-22
• dargestellter Exponent e = 10000100
bit 23
23-30
30
• Vorzeichen s = 0
bit 31
Damit ist die Darstellung im IEEE 754-Format mit einfacher
Genauigkeit (single precision):
0100 0010 0011 0110 1000 0000 0000 0000
WS 2008/2009
Technische Grundlagen der Informatik
49
Rundung
• In der Mathematik sind die reellen Zahlen
unendlich.
dli h JJedes
d Gl
Gleitkomma-Zahlensystem
itk
Z hl
t
hat endlich viele Elemente.
• Daher müssen Verfahren zur Rundung
realisiert werden, nicht nur für Zahlen die
kleiner oder größer sind als die Extremwerte.
g der Rundung
g resultiert
• Bei der Durchführung
ein Rundungsfehler.
WS 2008/2009
Technische Grundlagen der Informatik
50
Herunterladen