Informationsmenge
Maßeinheit: 1 Bit
Informationsmenge zur Beantwortung einer Binärfrage
kleinstmögliche Informationseinheit
1 Byte
Zusammenfassung von 8 Bit,
kleinste Speichereinheit im Computer,
liefert 28 = 256 Bitkombinationen
Umrechnungen:
1 Kilobyte
= 210 Byte
= 1.024 Byte
1 Megabyte
= 210 kB
= 1.048.576 Byte
1 Gigabyte
= 210 MB
= 1.048.576 KB
= 1.073.741.824 Byte
1 Terabyte
= 210 GB
= ...
Codierung 1
Codierung
Zuordnung von Zeichen eines Alphabets zu Zeichen eines anderen
Alphabets
Text, z.B. ASCII:
01000001
01000010
01000011
01000100
bedeutet
bedeutet
bedeutet
bedeutet
A
B
C
D
Zahlen, z.B. Binärcode:
0000
0001
0010
0011
0100
0101
bedeutet
bedeutet
bedeutet
bedeutet
bedeutet
bedeutet
0
1
2
3
4
5
Codierung 2
Codierung
Darstellung von Text
Zur Darstellung von Texten werden das Textalphabet und die
Satzzeichen mit Bitfolgen codiert.
Gebräuchlichste Codierung: 7 Bit ASCII
(American Standard Code for Information Interchange)
erweiterter ASCII: 8 Bit (einige sprachspezifische Symbole)
UNICODE: 16 Bit (‚alle Sprachen der Welt‘)
Codierung 3
ASCII
ASCII = American Standard Code for Information Interchange
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
bl
!
"
#
$
%
&
'
(
)
*
+
,
.
/
Beispiele:
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
A
a
F
f
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
065
097
070
102
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
del
0100 0001
0110 0001
0100 0110
0110 0110
Codierung 4
Codierung
Darstellung von Zahlen
Für die maschinelle Verarbeitung von Zahlenwerten ist eine binäre
Codierung sehr gut geeignet.
Als Alphabet werden häufig die Zeichen { 0,1 } verwendet.
In der elektronischen Realisierung entspricht z.B.
0 : Spannung < 1.5 Volt
1 : Spannung > 3.5 Volt
Alle Berechnungen werden zur Basis 2 (Dual-, Binärsystem)
durchgeführt.
Codierung 5
Arithmetische Operationen
Elementare Zahlenarten:
Natürliche Zahlen (positiv, z.B. 1, 2, 3, …)
Ganze Zahlen (positiv und negativ,
z.B. -5, 0, 2, 42, …)
Rationale Zahlen (z.B. -2/3, 7/2, 13/17, …)
Reelle Zahlen (ganze und rationale sowie irrationale Zahlen wie
oder 2)
Codierung 6
Zahlensysteme: Dezimalsystem
Darstellung von ganzen Zahlen
Jede Ziffer innerhalb einer Zahl besitzt einen Ziffernwert und
einen Stellenwert.
Beispiel:
1235
=
+
+
+
5*1
3 * 10
2 * 100
1 * 1000
=
5 * 100
+ 3 * 101
+ 2 * 102
+ 1 * 103
Ziffernwert * Stellenwert
Codierung 7
Zahlensysteme: Dezimalsystem
Verallgemeinerung für das Dezimalsystem:
Der Zahlenwert a ist die Summe über alle Stellen i = 0, ..., n
der einzelnen Produkte aus Ziffernwert zi und Stellenwert 10i
Also:
n
a
=
z i * 10 i
i=0
Codierung 8
Zahlensysteme: Beliebiges Zahlensystem
Verallgemeinerung für ein beliebiges Zahlensystem :
Für ein beliebiges Zahlensystem gilt :
n
a
=
zi*Bi
i=0
Hierbei ist B die Basis des Zahlensystems und die darin gültigen
Ziffern zi können die Werte 0,1,..., B-1 annehmen.
Codierung 9
Arithmetische Operationen
Darstellung ganzer Zahlen
Dezimalsystem: 0,…,9
Zur binären Darstellung der 10 Ziffern werden 4 Bits benötigt.
Mit 4 Bits können 16 Ziffern codiert werden.
Für die weiteren 6 Ziffern werden die Zeichen A,…,F eingeführt und
der Hexadezimalcode definiert.
Zahlensystem
Dualsystem
Oktalsystem
Dezimalsystem
Hexadezimalsystem
Basiszahl
2
8
10
16
Zeichenvorrat
0,1
0,1,2,3,4,5,6,7
0,1,2,3,4,5,6,7,8,9
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Codierung 10
Ganze Zahlen (ohne Vorzeichen)
a =
zi * Bi
Wertebereich:
0 a 2n - 1
Codierung 11
Ganze Zahlen (ohne Vorzeichen)
Beispiel Umrechnung in Basis 2
(235)10 = (a)2
235 : 2 = 117,
117 : 2 = 58,
58 : 2 = 29,
29 : 2 = 14,
14 : 2 = 7,
7 : 2 = 3,
3 : 2 = 1,
1 : 2 = 0,
Rest 1
Rest 1
Rest 0
Rest 1
Rest 0
Rest 1
Rest 1
Rest 1
20 * 1
21 * 1
22 * 0
23 * 1
24 * 0
25 * 1
26 * 1
27 * 1
=
=
=
=
=
=
=
=
1 +
2+
8+
32 +
64 +
128
11101011 = (235)10
Codierung 12
Ganze Zahlen (ohne Vorzeichen)
Beispiel Umrechnung in Basis 8
(235)10 = (a)8
235 : 8 = 29,
29 : 8 = 3,
3 : 8 = 0,
Rest 3
Rest 5
Rest 3
80 * 3
81 * 5
82 * 3
=
=
=
3+
40 +
192 +
3538 = (235)10
Codierung 13
Ganze Zahlen (mit Vorzeichen)
Wertebereich:
-2n-1+1 a 2n-1 -1
Most Significant Bit (MSB) definiert das Vorzeichen.
Vorzeichen muss gesondert ausgewertet werden.
Zwei Darstellungen der 0, nämlich +0 und -0
Codierung 14
Ganze Zahlen (mit Vorzeichen)
Binary Offset
Der kleinstmögliche
Wert wird mit 0000…
und der größtmögliche
Wert wird mit 1111…
dargestellt.
Wertebereich:
-2n-1 a 2n-1 -1
a = D – O;
D: binäre Darstellung, Offset O = 8
Nur eine Darstellung der 0.
Findet Verwendung beim Exponent der IEEE 754
Codierung 15
Ganze Zahlen im Einerkomplement
Most Significant Bit (MSB)
definiert das Vorzeichen.
positive Zahl: MSB = 0,
Die drei niederwertigen Bits
werden wie gewohnt
ausgewertet
negative Zahl: MSB = 1,
Die drei niederwertigen Bits
werden invertiert und
anschließend ausgewertet
Wertebereich:
-2n-1+1 a 2n-1 -1
Codierung 16
Ganze Zahlen im Einerkomplement
Beispiel Einerkomplement
-3 soll binär als Einerkomplement dargestellt werden
binäre Darstellung des Betrags
(3)10 = (0011)2
Setzen des Vorzeichens und Komplement der Bits
(-3)10 = (1100)2-1K
Codierung 17
Ganze Zahlen im Zweierkomplement
Most Significant Bit (MSB)
definiert das Vorzeichen.
positive Zahl: MSB = 0,
Die drei niederwertigen Bits
werden wie gewohnt
ausgewertet.
Wertebereich:
-2n-1 a 2n-1 -1
negative Zahl: MSB = 1,
Die drei niederwertigen Bits
werden invertiert,
1 addiert und
anschließend ausgewertet.
Codierung 18
Ganze Zahlen im Zweierkomplement
Vorteil der Zweierkomplement-Darstellung
Es existiert nur eine Null.
Null ist zu sich selbst Komplement
(0000)2k = (0000)1k + 1 = FFFF +1 = 0
Das Vorzeichenbit muss für Addition und Subtraktion nicht
gesondert ausgewertet werden.
Signifikante Vereinfachung der Berechnung.
Zweierkomplement wird in der Praxis fast ausschließlich eingesetzt.
Codierung 19
Addition und Subtraktion
Addition:
0 + 0 = 0,
1 + 0 = 1,
0 + 1 = 1,
1 + 1 = 0,
kein Übertrag (‚Carry‘)
kein Übertrag
kein Übertrag
Übertrag 1
Subtraktion:
0 - 0 = 0, kein Übertrag
1 - 0 = 1, kein Übertrag
0 - 1 = 1, Übertrag 1
1 - 1 = 0, kein Übertrag
Codierung 20
Beispiele Addition und Subtraktion
Ganze Zahlen ohne Vorzeichen
610
+ 310
C
= 910
0110
0011
110
1001
610
- 310
C
= 310
0110
0011
011
0011
Ganze Zahlen mit Vorzeichen (Zweierkomplement)
610
0110
+(-310) 1101
C
100
= 310
10011
310
+(-610)
C
=-310
0011
1010
010
1101
Codierung 21
Beispiele Addition und Subtraktion
Ganze Zahlen ohne Vorzeichen
1510
+ 110
C
=1610
1111
0001
111
10000
Übertrag
(Carry, C, CY)
Überlauf
(Overflow, O, OV)
Ganze Zahlen mit Vorzeichen (Zweierkomplement)
610
+ 210
C
=-810?
0110
0010
110
1000
-710
1001
+(-610) 1010
C
000
=+310? 10011
Codierung 22
Addition und Subtraktion
Übertrag (Carry)
Ein Übertrag entsteht, wenn bei Operationen mit nur positiven
Zahlen der Wertebereich überschritten wird.
Codierung 23
Addition und Subtraktion
Überlauf (Overflow)
Ein Überlauf entsteht, wenn bei Operationen von Zweierkomplement-Zahlen der Wertebereich überschritten wird.
Ein Überlauf liegt dann vor, wenn beide Summanden das gleiche
Vorzeichen haben und das Ergebnis ein anderes.
Codierung 24
Rationale Zahlen
Bisher haben wir die binäre Darstellung der ganzen Zahlen
kennen gelernt: Integer
n
a
=
zi*Bi
i=0
mit B = 2
Darstellung gebrochener Zahlen (Rationaler Zahlen):
Festkomma-Darstellung
Fließkomma-Darstellung (Floating Point)
Codierung 25
Rationale Zahlen
Festkomma-Zahlen
a
in
i m
zi bi
znb n zn 1b n 1... z1b z0 z1b 1 ... z mb m
n+1 Bits für Vorkomma-, m Bits für Nachkommastellen
Es ist Konvention, die Ziffern mit absteigendem Index i als Liste
darzustellen und zwischen z0 und z-1 ein Komma einzufügen.
a z3 b 3 z 2 b 2 z1 b1 z0 b 0
z 1 b 1 z 2 b 2 z 3 b 3 z 4 b 4
Codierung 26
Rationale Zahlen
(123,4567)10 0 1000 1100 2 10 3 1
4
5
6
7
10 100 1000 10000
in gleicher Weise kann man binäre Zahlen darstellen:
1 1 0 1
(1001,1101) 2 1 8 0 4 0 2 1 1
2 4 8 16
In diesem Beispiel ist also (1001,1101)2 = (9,8125)10
Bei Festkomma-Zahlen ist der Wertebereich stark
eingeschränkt!
Codierung 27
Umwandlung von Nachkommastellen einer Dezimalzahl
Beispiel (0,28125)10 :
0,28125*2 = 0,5625
0,5625*2
= 1,125
0,125*2
= 0,25
0,25*2
= 0,5
0,5*2
= 1,0
(0,28125)10 = (0,01001)2
Codierung 28
Beispiel Zweierkomplement Festkommazahl
Umwandlung binär dezimal, MSB = 1
a = (1011,0110)2
falls MSB = 1 Zahl ist negativ,
dann
Betrag berechnen
Komplement aller Bits, 1 addieren
(1011,0110)2-2K = (0100,1001)2 +(1)2
= (0100,1010)2
|a| = (4,625)10
Vorzeichen negativ
a = -4,625
Codierung 29
Beispiel Zweierkomplement Festkommazahl
Umwandlung dezimal binär, a < 0
a = (-4,625)10
falls a < 0 Zahl ist negativ,
dann
Betrag berechnen:
Vorkomma
Nachkomma
4:2 = 2, R=0
0,625* 2 = 1, r=0,25
2:2 = 1, R=0
0,25 * 2 = 0, r=0,5
1:2 = 0, R=1
0,5 * 2 = 1, r=0
|a| = 0100,1010
Komplement aller Bits, 1 addieren
(0100,1010)2-2K = (1011,0101)2 +(1)2
= (1011,0110)2
a = (1011,0110)2
Codierung 30
Rechnerinterne Darstellung einer Fließkomma-Zahl
Allgemeine Darstellung:
z = (-1)s 1.f 2 e-o
s = Vorzeichen (Signum, sign, 0 = positiv, 1 = negativ)
f = Fraktion, fraction
e = Exponent
o = Offset (127 bzw. 1023) wg. Wertebereich
1.f: normalisierte Darstellung: 1 vor Binärpunkt ist implizit, d.h. wird
angenommen, nicht dargestellt
0.f: denormalisierte Darstellung: in besonderen Fällen wird keine
binäre 1 angenommen.
Codierung 31
Rechnerinterne Darstellung einer Fließkomma-Zahl
Beispiel: Darstellung von 45.62510
Vorgehensweise:
binäre Darstellung der Vorkommastellen
binäre Darstellung der Nachkommastellen
binäre Darstellung der Zahl
Normalisierung und Bestimmung Exponent
Darstellung von Fraktion f
Darstellung des Exponenten e
Bestimmung des Vorzeichens s
Codierung 32
Rechnerinterne Darstellung einer Fließkomma-Zahl
Beispiel Fließkomma-Zahl
4510 = 1011012
Nachkommastellen
0.6252 = 1.25
0.25 2 = 0.5
0.5 2 = 1.0
0.62510 = 1012 2-3
= 0.1012
45.62510 = 45 + 0.625
= 101101.1012
101101.1012 =
1.011011012 2+5
normalisiert, E = 5
Bestimmung Fraktion
1.01101101, also
f = 01101101
dargestellter Exponent e:
E = e-o
e = E+o; o=127 (single)
= 5+127
= 132
= 100001002
Vorzeichen s = 0 (pos)
Codierung 33
Rechnerinterne Darstellung einer Fließkomma-Zahl
Beispiel: 45.62510
Fraktion f = 01101101 (beachte 1.01101101)
bit 0-22
dargestellter Exponent e = 10000100
bit 23-30
Vorzeichen s = 0
bit 31
Damit ist die Darstellung im IEEE 754-Format mit einfacher Genauigkeit
(single precision – 32 Bit):
0100 0010 0011 0110 1000 0000 0000 0000
entspricht hexadezimal
42 36 80 00
Codierung 34
Rechnerinterne Darstellung einer Fließkomma-Zahl
Spezielle Werte:
Zahl Null kann nicht direkt dargestellt werden. Darstellung durch
e=0 und f=0
Unendlich, Infinity
Darstellung alle Bits im Exponenten 1, f=0;
Unterscheidung von Infinity durch s=0 oder 1
Not-a-Number NaN, Darstellung ist keine Zahl.
Darstellung alle Bits im Exponenten 1, f0;
Beispiele:
±nichtnull / 0 = ±Infinity
±Infinity / ±Infinity = NaN
Codierung 35
Rechnerinterne Darstellung einer Fließkomma-Zahl
Formatspezifikationen der IEEE 754
Codierung 36