Mathematik f黵 Informatiker - ReadingSample - Beck-Shop

Werbung
Mathematik für Informatiker
Einführung an praktischen Beispielen aus der Welt der Computer
Bearbeitet von
Manfred Brill
1. Auflage 2001. Taschenbuch. 447 S. Paperback
ISBN 978 3 446 21733 1
Format (B x L): 16,9 x 24 cm
Gewicht: 833 g
Zu Inhaltsverzeichnis
schnell und portofrei erhältlich bei
Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft.
Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm
durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr
als 8 Millionen Produkte.
Kapitel 2
Zahlen
Warum Informatiker Zahlen kennen müssen
Der verschiedenen Zahlensysteme wie rationale und reelle Zahlen müssen auf
dem Computer zur Verfügung stehen. Dazu können die Stellenwertsysteme verwendet werden. Insgesamt gibt es Darstellungen für ganze, rationale und reelle
Zahlen.
Die auf einem Computer zur Verfügung stehenden Zahlen sind endlich, auch
wenn es inzwischen sehr viele sind. Für die Repräsentation von Dezimalbrüchen
werden Gleitpunktsysteme eingeführt. In diesen Zahlensystemen kommt es zu
Ungenauigkeiten bei der Eingabe und bei Berechnungen. Bei der Implementierung von komplexen Algorithmen muss dies berücksichtigt werden.
2.1 Zahlensysteme
Die natürlichen Zahlen sind andeutungsweise schon bei der vollständigen Induktion aufgetaucht. In letzter Zeit wird die Zahl 0 zu den natürlichen Zahlen hinzugefügt. In diesem Buch beginnen die natürlichen Zahlen immer bei 1. Als Symbole
für natürliche Zahlen benutzen wir meist die Kleinbuchstaben k; m oder n.
In der modernen Mathematik werden Begriffe wie die natürlichen Zahlen durch
einen Satz von Axiomen definiert. Wir versuchen durch die wesentlichen Eigenschaften einen Begriff eindeutig zu beschreiben. Die natürlichen Zahlen können
wir mit den Axiomen von Peano charakterisieren, die Rechengesetze, die wir kennen, sind daraus herleitbar.
Definition 2.1: (Peano-Axiome) Die natürlichen Zahlen sind die Zahlen mit den folgenden Eigenschaften:
P1:
1
ist eine natürliche Zahl.
34
2 Zahlen
P2: Jede natürliche Zahl n besitzt einen Nachfolger n+ .
P3: Es gibt keine natürliche Zahl n mit n+
P4: Gilt für m und n die Beziehung m
+
=
= 1
n
+
.
, dann ist m = n.
P5: Eine Aussage, die für 1 und für jeden Nachfolger n+ jeder natürlichen Zahl, für die
sie richtig ist, gilt, ist richtig für alle natürlichen Zahlen.
Die Axiome P1 und P3 sagen aus, dass die Zahl 1 die kleinste“ natürliche Zahl ist,
”
aus dem Axiom P2 erkennen wir, dass es keine größte natürliche Zahl geben kann,
insgesamt existieren also unendlich viele natürliche Zahlen. Das Axiom P5 bildet
die Grundlage der vollständigen Induktion, die wir bereits als Beweisverfahren
kennen gelernt haben.
Für die natürlichen Zahlen gibt es einen Ordnungsbegriff. Eine natürliche Zahl m
ist kleiner als“ n, in Zeichen m < n genau dann, wenn es eine natürliche Zahl k
”
gibt mit m + k = n. Analog definieren wir das Zeichen >“.
”
Die Addition von natürlichen Zahlen ist abgeschlossen, denn das Ergebnis der
Operation n + m ergibt wieder eine natürliche Zahl. Anders verhält es sich bei der
Subtraktion n m, denn offensichtlich hat 4 6 keine natürliche Zahl als Ergebnis.
Um dieses Malheur zu beseitigen, führen wir die ganzen Zahlen
ÿ
ÿ
: : : ; ÿ3; ÿ2; ÿ1; 0; 1; 2; 3; : : :
ein.
Zusätzlich zu < und > können wir jetzt das Symbol einführen, n
0 bedeutet, dass n größer oder gleich 0 ist, also nicht negativ. Analog definieren wir das
Symbol .
ý
ü
ý
Definition 2.2: Den Absolutbetrag einer ganzen Zahl n definieren wir als
jnj
ûÿ
0
(
=
n
ÿn
jj
ý
für n 0;
für n < 0:
ÿ!
4
1
2
3
-
4
Abbildung 2.1: Der Absolutbetrag einer Zahl
Beispiele:
ÿ
ÿ
jj
4
; jÿ6j = 6
= 4
Anschaulich stellt der Absolutbetrag einer ganzen Zahl den Abstand zwischen
der Zahl und der Zahl 0 dar, wie Abbildung 2.1 zeigt.
2.1 Zahlensysteme
35
Satz 2.1: Der Absolutbetrag einer Zahl erfüllt
jnj ý
0
.
Beweis:
Wir nutzen aus, dass eine ganze Zahl entweder negativ, positiv oder gleich Null
ist. Für n 0 ist
ý
jnj
dieser Fall ist bewiesen.
Ist n < 0, dann erhalten wir
=
n ý 0;
jnj ÿn >
=
0
:
Auch in diesem Fall ist der Beweis vollzogen, der Fall
ebenfalls richtig.
n
= 0
ist wegen
0
ý
0
þ
Satz 2.2: Für alle ganzen Zahlen n und m gelten die Eigenschaften
jn þ mj jnj þ jmj,
Dreiecksungleichung: jn mj ü jnj jmj,
jn ÿ mj ü jnj jmj, und
jjnj ÿ jmjj ü jn ÿ mj.
=
+
+
+
Die Division zweier ganzer Zahlen ist nicht abgeschlossen, beispielsweise ist das
Ergebnis von 4 : 2 die ganze Zahl 2, das Ergebnis von 4 : 3 stellt allerdings
keine ganze Zahl mehr dar. Wir benötigen Brüche oder rationale Zahlen.
Wir übernehmen die Rechenoperationen Addition, Subtraktion, Multiplikation
und Division sowie die Ordnungsbegriffe von den ganzen Zahlen und erhalten
zusätzlich ein inverses Element der Multiplikation: Zu jeder rationalen Zahl q = 0
gibt es eine rationale Zahl q ÿ1 mit q q ÿ1 = 1. Wir können die rationalen Zahlen
als Lösung der Gleichung
ÿ
ÿ
6
þ
nþx =m
für ganze Zahlen m und n interpretieren, dadurch gelangen wir zu der allgemeinen Darstellung p = m
für jede rationale Zahl p. Für den Absolutbetrag erhalten
n
wir zusätzlich
jpj für q = 0:
p
=
q
jqj
jj
6
Das Element q ÿ1 ist der Kehrwert q1 der ganzen Zahl q . Eine wichtige Eigenschaft
der rationalen Zahlen ist die Tatsache, dass sie keine Lücken haben. Für zwei rationale Zahlen p und q mit p < q gibt es immer mindestens eine rationale Zahl
r mit p < r < q. Wir können für r zum Beispiel das arithmetische Mittel p+2 q
nehmen.
Neben den Grundrechenarten kennen wir die Potenzrechnung. Wir definieren für
die natürliche Zahl n an als n-faches Produkt von a mit sich selbst:
a
n
=
|a þ a þ{zþþþ þ a} :
n-mal
36
2 Zahlen
þ
Für die Potenzen gilt die Regel an am = an+m , und damit können wir den Begriff
der Wurzel aus einer Zahl einführen: Wir suchen eine Zahl mit x x = a, die Lösung
ist
1
þ
p
x = a = a:
p16 = 4. Obwohl die rationalen Zahlen sich
2;
p
2
Wir wissen schon längst, 4 =
beliebig nahe kommen können, entspricht nicht jeder Punkt auf dem Zahlenstrahl
einer rationalen Zahl.
Satz 2.3: Die Zahl
p
ist keine rationale Zahl.
2
Beweis:
Für den Beweis legen wir ein Quadrat der Seitenlänge 1 wie in Abbildung 2.2
mit der Diagonalen auf die Zahlengerade. Jeder Punkt auf der Zahlengerade ent-
ÿ
2
ÿ
1
0
1
2
3
4
Abbildung 2.2: Konstruktion der irrationalen Zahl
p
2
spricht einer Zahl. Falls die Länge der Diagonalen dieses Quadrats eine rationale
2
)
= 2, denn
Zahl ist, muss es zwei natürliche Zahlen m und n geben mit ( m
n
das Quadrat der Seitenlänge der Diagonale muss nach dem Satz von Pythagoras
gleich der Summe der Quadrate der Längen der Katheten sein.
2
Nehmen wir an, dass m und n zwei natürliche Zahlen mit ( m
)
= 2 sind, wir
n
2
m
gehen weiterhin davon aus, dass der Bruch n bereits gekürzt ist. Aus m
= 2
n2
erhalten wir m2 = 2n2 . m2 ist also eine gerade Zahl, und damit ist auch m selbst
gerade. Es gibt eine natürliche Zahl r mit m = 2r. Setzen wir diese Zahl ein und
kürzen den Bruch, erhalten wir 2r2 = n2 ; n2 ist gerade und auch n selbst. Wenn
m und n gerade sind, können wir den Bruch mn mit 2 kürzen, was jedoch ausgeschlossen war. Wir haben einen Widerspruch konstruiert, es gibt keine ganzen
Zahlen m und n mit 2 = m
.
þ
n
p
p
Zahlen wie 2, die nicht rational sind, nennen wir irrational. Wir können für die
Gesamtheit der rationalen und irrationalen Zahlen, die so genannten reellen Zahlen, alle Rechengesetze der rationalen Zahlen übernehmen. Für jede natürliche
Zahl n und jede positive reelle Zahl a gibt es eine eindeutig bestimmte positive
reelle Zahl b mit bn = a. Dieses b nennen wir n-te Wurzel aus a“ und schreiben
”
p 1
b = n a = an :
Wir können die Wurzelrechnung als Umkehrung der Potenzrechnung interpretieren. Wenn wir b und n kennen, ist a das Ergebnis der Potenzierung, kennen wir a
und n, ziehen wir die Wurzel. Kennen wir die Zahl a und die Zahl b und suchen
den Exponenten n, dann betreiben wir Logarithmenrechnung: der Logarithmus einer positiven reellen Zahl a zur Basis b ist derjenige Exponent n, der die Gleichung
2.1 Zahlensysteme
b
37
a erfüllt. Wir nennen n ”den Logarithmus von a zur Basis b“ und schreiben
n = log a;
dabei ist b 6= 1. Für einige spezielle Werte von b gibt es eigene Symbole. Wichtige
Basen sind die irrationale Euler’sche Zahl e, die Basis b = 10 und für Informatiker
insbesondere b = 2. In Tabelle 2.1 finden wir die entsprechenden Symbole.
n
=
b
Tabelle 2.1: Wichtige Logarithmen und ihre Symbole
Symbol
Basis
ld x
b
ln x
b
=
log x
b
= 10
=2
e
Wir führen an dieser Stelle eine Schreibweise ein, die vielen Neulingen bei der
Beschäftigung mit höherer“ Mathematik Schwierigkeiten bereitet. Bei der Defi”
nition der Potenz an hatten wir Punkte : : : benutzt; dies ist zwar oft sehr anschaulich, jedoch bei Mathematikern verpönt. Statt dessen führen wir Symbole für eine
Summe oder ein Produkt von n Zahlen ein. In der Sprache der Informatik führen
wir damit etwas wie Schleifen ein.
Definition 2.3: Für die Summe von n Zahlen schreiben wir
X
n
a
i =
a
+
1
a
2
+
þþþ
+
a
n
ÿ
1
a ;
+
n
P nennen wir Summenzeichen, i Summationsindex,
i=1
1 ist die untere und n die obere
Summationsgrenze. Für das Produkt von n Zahlen schreiben wir
Y
n
a þa
a
i =
1
2
þ þþþ þ a ÿ
n
1
a ;
+
n
Q nennen wir Produktzeichen, i Multiplikationsindex und die Grenzen Multiplikai=1
tionsgrenzen.
Wir zählen die wichtigsten Rechenregeln auf, die eine direkte Konsequenz aus
den Rechenregeln für reelle Zahlen sind:
X
n
X
n
X
n
X
n
i=1
a
X
m
a
i =
i=1
ca
i =
c
i=1
( i +
i=1
a = n þ a;
i=1
b)=
X
n
i
i +
X
n
X
a=a ;
n
i=1
a;
Y
n
i
n
a
n
i +
n
i=1
i=1
a
X
Y
a
i =
b;
Y
n
i
i=1
a ; m < n;
a;
i
i=1
i i =
XX
m
i=1 j =1
Y Y
n
ab
n
a
i=1
XX
m
a
ij =
b;
i
i
i=1
i=1
n
Y
n
n
i=1
i
i=m+1
c
n
a :
ij
j =1 i=1
38
2 Zahlen
Die reellen Zahlen sind bezüglich der Grundrechenarten abgeschlossen. Was stört,
ist, dass es nicht gelingt, der Wurzel aus einer negativen Zahl einen Sinn zu geben,
es gibt keine reelle Zahl mit x =
1. Dieses Problem tritt auf, wenn wir die
Gleichung x2 + 1 = 0 lösen wollen – sie hat keine reelle Lösung.
Zu diesem Zweck führen wir die imaginäre Einheit i mit i2 = 1 ein und definieren komplexe Zahlen z als z = x + iy . x nennen wir Realteil, y Imaginärteil von z .
Zu z = x + iy bilden wir die konjugiert komplexe Zahl z 0 = x iy .
Prinzipiell sind komplexe Zahlen also Paare reeller Zahlen, wir können sie zwar
nicht mehr auf einem Zahlenstrahl, aber in der Gauß’schen Zahlenebene darstellen. Es gibt eine Übertragung des Absolutbetrages; wir definieren
pÿ
ÿ
jzj
für eine komplexe Zahl z
=
=
p
x
x + iy.
2
+
y
6y
1
ÿ
2
z =1+i
-
z = ÿ1 ÿ i
1
x
Abbildung 2.3: Die komplexe Zahlenebene
Die Addition komplexer Zahlen ist definiert durch
x + iy) + (u + iv) = (x + u) + i(y + v);
(
die Multiplikation durch
x + iy) þ (u + iv) = xu + xvi + yui + yvi
= (xu ÿ yv ) + i(xv + yu)
2
(
Bei der Division von komplexen Zahlen müssen wir berücksichtigen, dass das
Resultat zz12 wieder als komplexe Zahl dargestellt werden muss. Dies erreichen wir,
indem wir den Nenner reell machen, was wir durch Erweiterung mit z20 erreichen.
Insgesamt erhalten wir
x + iy
u + iv
=
xu + xv
u +v
2
2
Dies können wir kurz darstellen als
z
z
1
2
=
+
i
yu ÿ xv
u +v
2
2
z z0
jz j
1
2
2
2
Im folgenden Satz fassen wir die wichtigsten Eigenschaften von komplexen Zahlen zusammen, der Beweis kann immer durch Nachrechnen erbracht werden.
2.1 Zahlensysteme
39
Satz 2.4: Für komplexe Zahlen z; z1 ; z2 gilt:
zz 0 = jz j ,
0 0 0
(z ú z ) = z ú z ,
0 0 0 1 )0 =
(z z ) = z z ; (
2
00
(z ) = z .
2
1
1
2
2
1
1
2
2
0
z
z1
z
z2
0
,
Wir entwickeln jetzt eine Darstellung von komplexen Zahlen, die bei der Multiplikation und der Potenzrechnung sehr nützlich ist. Für eine komplexe Zahl
z = x + iy = 0 setzen wir r = z und für ÿ den Winkel zwischen der positiven x-Achse und der Linie zwischen dem Punkt (0; 0) und z , dann erhalten wir
mit dem Satz von Pythagoras
6
jj
x = r cos ÿ; y = r sin ÿ:
Damit können wir die komplexe Zahl z darstellen als
z = r cos ÿ + ir sin ÿ = r(cos ÿ + r sin ÿ):
Diese Darstellung nennen wir Polarkoordinatendarstellung der komplexen Zahl z .
6
z = x + iy
y = r sin ÿ
ÿ
x = r cos ÿ
-
Abbildung 2.4: Die Polarkoordinatendarstellung komplexer Zahlen
Die Zahl r nennen wir Betrag, den Winkel ÿ Argument. Er ist nicht eindeutig bestimmt, durch die Addition von Vielfachen von 2þ erhalten wir diesselbe komplexe Zahl. Deshalb vereinbaren wir die zusätzliche Bedingung þ < ÿ þ , der
dadurch eindeutig bestimmten Winkel heißt Hauptargument.
Beispiele:
ÿ
ÿ
Die komplexe Zahl z
= 1+
p
i
3
hat den Betrag r
p
ÿ
ÿ;
3 = 2 sin ÿ;
p
1+3 = 2
. Aus
1 = 2 cos
erhalten wir das Hauptargument
ÿ þ=
ÿ
tendarstellung z = 2 cos þ3 + i sin þ3 .
ÿÿ
p
=
ü
þ
3
= 60
Æ und damit die Polarkoordina-
p
ÿ
ÿ
Die komplexe Zahl z = 1 i hat den Betrag 2 und aus cos ÿ = sin ÿ = p12
erhalten wir das Hauptargument ÿ = 34þ = 135Æ und damit die Polarkoorþ
ÿ
dinatendarstellung z = 2 cos ÿ43þ + i sin ÿ43þ .
ÿ
40
2 Zahlen
Mit Hilfe der Polarkoordinatendarstellung können wir Multiplikation und Division komplexer Zahlen eine geometrische Deutung geben. Multiplizieren wir zwei
komplexe Zahlen
z
1
=
r
1 (cos
ÿ
i sin ÿ ); z
+
1
1
=
2
r
ÿ
2 (cos
2
+
i sin ÿ
2)
in Polarkoordinatendarstellung, erhalten wir
zz
1
2
rr
= r r
=
ÿ cos ÿ
(cos (ÿ + ÿ
1
2 [cos
1
2
1
2
1
2
ÿ
i(sin ÿ
) + i sin (ÿ + ÿ )):
sin
ÿ
1
sin
ÿ
2
1
+
1
cos
ÿ
2
+ cos
ÿ
1
sin
ÿ
2 )]
2
Das Produkt zweier komplexer Zahlen erhalten wir also durch Multiplizieren der
Beträge und Addition der Argumente. Ganz analog erhalten wir den Quotienten
z1
für z2 = 0 zweier komplexer Zahlen durch Division der Beträge und durch die
z2
Subtraktion der Argumente.
6
6
Æ
90
iz
z
-
Abbildung 2.5: Multiplikation einer komplexen Zahl mit i
Beispiel:
Die imaginäre Einheit i hat den Betrag 1 und den Winkel ÿ = þ2 = 90Æ . Multiplizieren wir eine komplexe Zahl z mit i, bleibt der Betrag von z unverändert, das
Argument des Produkts ist um 90Æ größer als das von z . Anschaulich entspricht
die Multiplikation von z mit i einer Drehung von z um 90Æ entgegen dem Uhrzeigersinn.
Für komplexe Zahlen in Polarkoordinatendarstellung können wir die Potenzen
z n schnell berechnen. Für eine natürliche Zahl n und eine komplexe Zahl z =
r(cos ÿ + i sin ÿ) erhalten wir
z
n
darüberhinaus setzen wir z ÿn
=
=
r
n
(cos
nÿ + i sin nÿ);
n . Im Fall r = 1 gilt die Formel von DeMoivre.
1
z
Satz 2.5: (Formel von DeMoivre) Für eine natürliche Zahl n und
(cos
ÿ + i sin ÿ)
n
= cos
ÿþ < ÿ ü þ gilt
nÿ + i sin nÿ:
Die Umkehrung der Potenzrechnung, das Wurzelziehen, können wir mit dieser
Formel auch auf komplexe Zahlen übertragen. Die n-te Wurzel einer komplexen
1
Zahl z ist die Lösung w der Gleichung wn = z , wir schreiben w = z n . Wir schreiben w = ý(cos ü + i sin ü) und z = r(cos ÿ + i sin ÿ) in Polarkoordinatendarstellung,
dadurch erhalten wir die Gleichung
ý
n
(cos
nü + i sin nü) = r(cos ÿ + i sin ÿ):
2.1 Zahlensysteme
41
Vergleichen wir die Beträge, dann erhalten wir
ý = rn;
1
außerdem muss
nü = cos ÿ; sin nü = sin ÿ
erfüllt sein. Die Winkel ý und nü unterscheiden sich nur durch Vielfache von 2þ :
nü = ÿ + 2kþ; k = 0; ú1; ú2; : : :
cos
oder
ÿ 2kþ
+
; k = 0; ú1; ú2; : : : :
n
n
Als n-te Wurzel einer komplexen Zahl z = r(cos ÿ + i sin ÿ) erhalten wir damit
ý ÿ 2kþ
ü
p
1
ÿ 2kþ
n
n
z = r cos ( +
) + i sin (
+
)
; k = 0; ú1; ú2; : : : :
n
n
n
n
k kann zwar unendlich viele Werte annehmen, es gibt allerdings nur für k =
0; 1; 2; þþþ n ÿ 1 unterschiedliche Wurzeln. Damit hat eine komplexe Zahl z genau
n verschiedene n-te Wurzeln
p ý ÿ 2kþ ) + i sin ( ÿ + 2kþ )ü ; k = 0; 1; 2; þþþ n ÿ 1:
1
z n = n r cos ( +
n
n
n
n
ü=
6
p
1 +i
6
i
3
-
ÿ
2
1
Abbildung 2.6:
ÿp
1
z3
i
1
1
ÿ
3
i
für z = ÿ8
1
Abbildung 2.7: z 4 für z = 1
Beispiele:
ÿ
-
ÿ
ÿ
Wir ziehen die dritten Wurzeln aus z = 8. Das Hauptargument ist ÿ
der Betrag ist 8. Damit erhalten wir insgesamt drei Wurzeln, nämlich
û
2
ý
2
cos
þ
+
i sin
þú
= 1+
p;
i
=
ÿþ,
3
þ + sin þ) = ÿ2;
ü
p
þ
+ i sin 5
= 1 ÿ i 3:
3
3
2 (cos
cos
þ
5
3
p
3
In Abbildung 2.6 erkennen wir, dass die n-ten Wurzeln einer komplexen Zahl
auf einem Kreis mit Radius n r um z = 0 liegen, im Abstand von 2nþ . Wollen wir alle n-Wurzeln bestimmen, dann reicht es also, eine zu kennen, wir
erhalten die restlichen n 1 durch Drehung um 2nþ gegen den Uhrzeigersinn.
ÿ
42
2 Zahlen
ÿ
Wir ziehen die vierten Wurzeln aus 1. Eine Wurzel ist sicher z = 1 selbst, wir
drehen sukzessive um 24þ = þ2 = 90Æ , wir erhalten die Wurzeln 1; i; 1; i. Die
n-ten Wurzeln der komplexen Zahl 1 nennen wir Einheitswurzeln, sie verteilen
sich auf dem Einheitskreis.
ÿ ÿ
2.2 Stellenwertsysteme
Jede natürliche Zahl n lässt sich als Summe von Potenzen der natürlichen Zahl 10
darstellen. Beispielsweise ist die Zahl 125 zusammengesetzt als 125 = 1 100 + 2
10 + 5 1, allgemein können wir
þ
þ
n=a
0 10
0
+
a
1
1 10
+
a
2
2 10
+
þþþ
X
k
a
+
k
k 10
=
þ
a 10
i
i
i=0
ü ü
schreiben, dabei ist 100 = 1 und 0
ai 9, die Darstellung bricht irgendwann
bei einer Zehnerpotenz 10k ab, auch wenn für eine große Zahl n dieses k unangenehm groß werden kann. Das Dezimalsystem besteht darin, die Koeffizienten in
umgekehrter Reihenfolge aufzuschreiben:
n=a a
k
k
ÿ
1
:::a a :
1
0
Etwas schwerer wird dieses Verfahren, wenn wir eine reelle und nicht ganze Zahl
x darstellen wollen. Es gibt eine ganze Zahl g mit g < x < g + 1. Diese Strecke
auf dem Zahlenstrahl zwischen g und g + 1 teilen wir in 10 gleiche Teile, wir
nummerieren diese Teile von links nach rechts mit 0 bis 9 durch. In einem dieser
Teile liegt x. In Abbildung 2.8 liegt sie zwischen g = 2 und g + 1 = 3, x liegt im
Teilabschnitt i = 2.
ÿ
-
ÿ
2
1
0
1
x
2
3
4
Abbildung 2.8: Konstruktion der Dezimaldarstellung einer reellen Zahl
Die Nummer des Teilabschnitts ist dÿ1 = i. Fällt x mit dem linken Endpunkt
des Teilabschnitts zusammen, dann ist der Algorithmus beendet. Für x gibt es die
Darstellung x = g + dÿ1 10ÿ1 . Im anderen Fall muss x zwischen g + dÿ1 10ÿ1 und
g + (dÿ1 + 1) 10ÿ1 liegen. Diese Strecke hat nur noch die Länge 101 , wir können
sie aber immer noch in 10 gleiche Stücke teilen und erhalten analog zu dÿ1 eine
Zahl dÿ2 . Ist x jetzt gleich dem linken Endpunkt eines Teilstücks, erhalten wir die
Darstellung x = g + dÿ1 10ÿ1 + dÿ2 10ÿ2 , oder aber es gilt die Ungleichung
þ
þ
g + dÿ
1
þ
10
þ
ÿ
þ
1
+
dÿ
2
þ
10
ÿ
þ
2
< x < g + dÿ
1
þ
10
ÿ
1
dÿ
+(
2
+ 1)
þ
ÿ
10
2
2.2 Stellenwertsysteme
43
Dieses Teilen läuft so lange weiter, bis es einmal einen linken Endpunkt gibt, der
mit x übereinstimmt. Ist dies nie der Fall, dann bedarf es unendlich vieler Teilungen. Im Fall einer endlichen Zahl von Teilungen ist
x = g + dÿ
1
þ
10
ÿ
1
þ
dÿ
+
2
10
ÿ
2
+
þþþ
+
dÿ
k
þ
ÿ
10
k
=
ÿ
X
d
ÿ
1
g+
i
i 10
i=
:
k
g hat ebenfalls eine Dezimaldarstellung, insgesamt erhalten wir
x=x x
n
ÿ
n
1
: : : x x ; dÿ dÿ : : : dÿ :
1
0
1
k
2
Im Fall, dass die Teilungsvorgänge nicht abbrechen, schreiben wir
ÿ
x=x x
n
n
1
: : : x x ; dÿ dÿ : : : dÿ : : :
1
0
1
k
2
und nennen das Ergebnis einen unendlichen Dezimalbruch.
Wir schreiben im Fall, dass es ein k mit dÿj = 9 für alle j < k gibt,
x=x x
= x x
ÿ
ÿ
n
n
1
n
n
1
: : : x x ; dÿ dÿ : : : dÿ 99999 : : :
: : : x x ; dÿ dÿ : : : (dÿ + 1);
1
0
1
2
1
0
1
2
k
k
zum Beispiel 4; 26399999 : : : = 4; 264.
Satz 2.6: Der Dezimalbruch einer rationalen Zahl ist endlich oder periodisch und umgekehrt stellt jeder solche Dezimalbruch eine rationale Zahl dar. Genau die irrationalen
Zahlen entsprechen den nicht-periodischen unendlichen Dezimalbrüchen.
Tabelle 2.2: Einige irrationale Zahlen
px
p2
3
Dezimaldarstellung
1; 4142136 : : :
1; 7320508 : : :
e
2; 7182818 : : :
ÿ
3; 1415927 : : :
Wir können an dieser Stelle philosophieren, warum ausgerechnet die Zahl 10 für
die Darstellung der Zahlen benutzt wird. Ein wesentlicher Faktor ist sicher, dass
wir Menschen im Normalfall nun einmal mit 10 Fingern zur Welt kommen. Eine Welt mit achtfingrigen Geschöpfen hätte vielleicht nicht das Dezimalsystem
mit seiner Zehnerteilung, sondern eine Teilung in acht Teile, das Oktalsystem eingeführt.
Die Vermutung liegt nahe, dass Informatiker scheinbar nur zwei Finger besitzen.
Weit gefehlt! Fortgeschrittene Informatiker besitzen sogar insgesamt 16 Finger!
Bevor wir uns Geschöpfen mit weniger als 10 Fingern annähern, untersuchen wir
eine uralte Rechenmethode für die Multiplikation, die je nach Quelle als abessi”
nische Bauernmultiplikation“ oder russische Bauernmethode“ bekannt ist.
”
44
2 Zahlen
Nehmen wir an, wir stehen vor der Aufgabe, das Produkt zweier natürlicher Zahlen a b zu berechnen. Dann dividieren wir fortgesetzt den ersten Faktor a durch 2,
dabei vernachlässigen wir den Rest und schreiben die Teiler bis zur Zahl 1 untereinander. Daneben, in einer zweiten Spalte, schreiben wir das Doppelte, Vierfache
und so weiter des zweiten Faktors b. Gerade Zahlen bringen Unglück!“ sagen
”
die abessinischen Bauern. Deshalb streichen wir alle die Zeilen, in denen die erste
Spalte eine gerade Zahl enthält. Addieren wir die verbleibenden Zahlen der zweiten Spalte, erhalten wir als Ergebnis das Produkt a b. Testen wir diese Regel doch
einmal an Hand des Produkts 21 17:
þ
þ
þ
21
17
10
34
5
68
2
136
1
272
357
Haben die abessinischen Bauern vielleicht doch Recht und die geraden Zahlen
bringen Unglück? Wenn diese Methode immer zu einem richtigen Ergebnis führt,
warum in aller Welt funktioniert das? Dahinter muss ein rational erklärbarer
Grund liegen, wir sind doch nicht abergläubisch! Die Lösung hat etwas mit Stellenwertsystemen zu tun.
Wir benutzen eine Zahl b > 1 als Basis des Zahlensystems. Praktisch bedeutsam sind trotz allen Fingerzählens natürlich b = 10. Daneben sind die Werte
2; 8 und 16 wichtig. Wir sprechen vom binären oder dualen, vom oktalen und vom
hexadezimalen Zahlensystem. Benutzen wir eine Basis b > 10, gehen die Symbole aus, wir benutzen in diesem Fall zusätzlich zu den Zahlensymbolen 0 bis 9
die Ziffern A; B; C; : : :, also für b = 12 A und B und im Hexadezimalsystem
A; B; C; D; E und F .
Wir stellen eine natürliche Zahl n in einem Zahlsystem mit Basis b > 1 dar. Für
n = 125 und b = 10 hatten wir das schon durchgeführt und n durch Summe
von Potenzen der Basis dargestellt. Doch wir hatten etwas gemogelt: Natürlich
wussten wir, dass die Dezimaldarstellung von 125 drei Zehnerpotenzen benötigen wird. Für beliebige Basen ist es nicht immer so leicht einzusehen, wie viele
Potenzen wir benötigen.
Für die natürliche Zahl n gibt es garantiert eine natürliche Zahl k mit
b
k
ÿ
1
ün<b ;
k
für n = 125 und b = 10 war k = 3. Wir teilen die Zahl n durch bkÿ1 , was in der
Regel nicht ohne Rest durchführbar sein wird. Im Beispiel erhalten wir 125 : 100 =
1 100 + 25, allgemein
þ
n=a
Wegen der Division ist
0
üa ÿ
k
1
k
ÿ
1
þb ÿ
k
1
r
+
< b und 0 ü r
k
k
ÿ:
1
ÿ
1
<b
k
ÿ
1
2.2 Stellenwertsysteme
45
Mit dem Rest rkÿ1 verfahren wir genauso, wir teilen ihn durch die nächstkleinere
Potenz der Basis. Dies ergibt den Koeffizienten akÿ2 und einen Rest rkÿ2 :
r
k
ÿ
=
1
a
k
ÿ
2
þb ÿ
k
2
+
r
k
ÿ:
2
Wieder sind auf jeden Fall die Aussagen
0
üa ÿ
k
< b und 0 ü r
k
2
ÿ
2
<b
k
ÿ
2
richtig. Dieses Verfahren setzen wir so lange fort, bis wir zu einer Gleichung
r
1
=
a þb
0
0
kommen oder für einen anderen Index bereits keinen Rest bei der Division erhalten:
n=a ÿ þb ÿ +r
r ÿ =a ÿ þb ÿ +r
::::::
r = a þþþ b + r ;
r =a :
k
k
1
k
2
1
1
0
1
2
k
1
k
2
1
k
k
ÿ;
ÿ;
1
2
1
Addieren wir diese Gleichungen, erhalten wir die Darstellung
n=a b
0
0
+
ab
1
1
+
þþþ
+
a
k
ÿbÿ;
1
k
1
für n = 10 erhalten wir die Dezimaldarstellung zurück. Durch das Verfahren gelingt es, eine natürliche Zahl durch die k Zahlen a0 ; a1 ; : : : ; akÿ1 zu beschreiben,
von denen jede nur einen der Werte 0; 1; : : : ; b 1 annehmen kann. Umgekehrt
können wir durch Kenntnis dieser Werte jede Zahl mit Hilfe von etwas Potenzrechnung berechnen.
ÿ
Satz 2.7: Jede natürliche Zahl n lässt sich als eine Summe von Potenzen einer beliebigen
natürlichen Zahl b > 1 in der Form
n=
ÿ
X
k
1
ab
i
i
a
= ( k
ÿaÿ
1
k
2
:::a a ) ;
1
0 b
i=0
ü
darstellen. Dabei ist die natürliche Zahl k durch die Bedingung bkÿ1 n < bk eindeutig
bestimmt. Für die Koeffizienten in der Entwicklung gilt 0 ai < b für alle 0 i k 1,
sie lassen sich sukzessive mit Hilfe des Divisionsalgorithmus (rk = n; r0 = 0)
ü
r
i =
berechnen.
aÿ þbÿ
i
1
i
1
+
r
k
ÿ ;i
1
=
k; k ÿ 1; : : : ; 1
ü ü ÿ
46
2 Zahlen
Die Darstellung von rationalen und irrationalen Zahlen kann für beliebige Basen
b > 1 genauso gefunden werden, wie wir das für b = 10 bereits durchgeführt haben. Statt die Strecken immer in 10 gleiche Teile aufzuteilen, müssen wir b gleiche
Teile bilden. Auch die Unterteilung zwischen endlichen und unendlichen Dezimalbrüchen bleibt erhalten.
Dies gelingt durch den vorgestellten Divisionsalgorithmus, in dem wir für eine rationale Zahl m
zuerst m mit Rest durch n dividieren. Wir erhalten die Darstellung
n
m = gn + r0 mit g > 0 und 0 r0 < n und bilden der Reihe nach
ü
dÿ n + r ;
= dÿ n + r ;
::::::
br = dÿ
n + rÿ
br
br
0
=
1
1
1
2
2
i
(i+1)
(i+1)
:
Wir teilen fortlaufend das b-fache des Rests ganzzahlig durch den Nenner n. Auf
die ganze Zahl g wenden wir den Divisionsalgorithmus an und stellen g dadurch
bezüglich der ausgewählten Basis b dar. Wir erhalten eine Dezimaldarstellung der
zur Basis b.
rationalen Zahl m
n
Kommen wir auf die abessinischen Bauern und ihre Multiplikationsmethode
zurück. Warum funktioniert dies für alle Zahlen n und m? Dazu betrachten wir
die Darstellung der beiden Faktoren im Stellenwertsystem mit der Basis b = 2.
Den Faktor n können wir darstellen als
n=
ÿ
X
r
1
a2;
i
i
i=0
das Produkt ist
nm =
ÿ
X
r
1
a (2 m):
i
i
i=0
Dies ist gerade die Summe, wie sie in der zweiten Spalte der abessinischen Multiplikationsmethode steht. Dort haben wir m selbst, das Doppelte von m, das Vierfache von m und so weiter. Auch die Anzahl der Summanden stimmt mit der
Anzahl der Zeilen im Schema überein. Dies liegt an der Zahl r und der Methode,
wie wir die erste Spalte in der Multiplikationsmethode gebildet hatten.Die Faktoren a0 bis arÿ1 sind entweder 0 oder 1, die Summanden in der Darstellung des
Produkts nm mit ai = 0 können wir streichen. Es bleibt zu zeigen, dass die Faktoren ai gerade dann 0 sind, wenn in der i-ten Zeile der Multiplikationsmethode
links eine gerade Zahl steht.
In der ersten Zeile stehen die Faktoren m und n selbst. Diese Zeile wird genau
dann gestrichen, wenn die Zahl n selbst gerade ist. n ist aber genau dann gerade,
wenn in der Darstellung zur Basis b = 2 a0 = 0 ist; für diese erste Zeile stimmt die
Vermutung.
2.3 Zahlendarstellung im Computer
47
Die Quotienten n2 ; n4 ; :::, die bei der ganzzahligen Division von n durch die Potenzen von 2 entstehen, sind genau die Zahlen in der linken Spalte des Schemas. Für
n1 mit n = 2n1 + r1 gilt dann n1 = a1 20 + a2 21 + + arÿ12rÿ2 . n1 ist genau dann
gerade, wenn a1 = 0 ist. Mit dem gleichen Argument können wir beweisen, dass
die Zahl ni genau dann gerade ist, wenn ai = 0 ist. Also bleiben in der Summendarstellung des Produkts mn genau jene Summanden übrig, für die die Zahlen ni
ungerade sind; wir streichen genau diese Zeilen in der Multiplikationsmethode
durch. Die abessinischen Bauern sind also nicht abergläubisch, sondern gingen
offenbar schon intuitiv mit Dualzahlen um.
þþþ
2.3 Zahlendarstellung im Computer
Für die Darstellung der ganzen Zahlen im Computer benutzen wir das Dualzahlsystem, also ein Stellenwertsystem mit der Basis b = 2. Es ist klar, dass nur Bitmuster einer festen Länge N benutzt werden können. Damit können wir maximal
N
2
verschiedene Zahlen darstellen. Verglichen mit unendlich vielen ganzen Zahlen, ist das recht wenig. Für N = 32, eine weit verbreitete Länge, sind es genau
4 294 967 296 Zahlen. Diese möglichen Bitmuster werden allerdings häufig gar
nicht alle zur Zahlendarstellung verwendet, weitere Informationen wie das Vorzeichen müssen schließlich ebenfalls gespeichert werden.
Ein Bitmuster dN ÿ1 : : : d1 d0 der Länge N kann im Stellenwertsystem zur Basis
2 interpretiert werden. Damit erhalten wir alle natürlichen Zahlen und die Null
durch
: : : 000 ù
= 0;
000 : : : 001 ù
= 1;
:::::::::
111 : : : 111 ù
= 2
000
N
ÿ
:
1
Was ist mit dem Vorzeichen? Wollen wir nicht mehr als N Bits spendieren, dann
müssen wir für die Darstellung des Vorzeichens wohl oder übel die Menge der
darstellbaren Zahlen einschränken. Dazu gibt es insgesamt drei Methoden: die getrennte Codierung des Vorzeichens, das Einerkomplement und das Zweierkomplement.
Bei der getrennten Codierung des Vorzeichens nehmen wir das erste Bit der Darstellung und interpretieren es als Vorzeichen, eine 0 setzen wir mit +, eine 1 mit
gleich. Damit erhalten wir die Zahlen zwischen (2N ÿ1 1) bis 2N ÿ1 1. Von
Nachteil ist die nicht mehr eindeutige Darstellung der Zahl 0: es gibt plötzlich
eine +0 und eine 0. Insgesamt erhalten wir die Darstellungen
ÿ
ÿ
: : : 000 ù
= 0
000 : : : 001 ù
= 1
000
ÿ
ÿ
: : : 000 ù
= ÿ0
100 : : : 001 ù
= ÿ1
100
ÿ
48
2 Zahlen
::::::
011
: : : 111 ù
= 2
N
ÿ
ÿ
1
::::::
1
111
: : : 111 ù
= ÿ(2
N
ÿ
1
ÿ
1)
Beim Einerkomplement ist die Darstellung der positiven Zahlen identisch mit
der oben aufgeführten Darstellung mit getrennter Codierung. Die negativen
Zahlen stellen wir dar, indem wir für eine positive Zahl x mit dem Bitmuster
dN ÿ1 dN ÿ2 : : : d1 d0 das komplementäre Muster
(1
ÿ
ÿd
N
ÿ
1 )(1
ÿd
N
ÿ
2)
: : : (1 ÿ d
1 )(1
ÿd
0)
als Darstellung für x verwenden. Auch hier ist die 0 doppelt vorhanden, das
erste Bit übernimmt die Rolle des Vorzeichens. Insgesamt erhalten wir die Darstellungen
: : : 000 ù
= 0
000 : : : 001 ù
= 1
::::::
ù
011 : : : 111 = 2
: : : 111 ù
= ÿ0
111 : : : 110 ù
= ÿ1
::::::
ù
100 : : : 000 = ÿ(2
000
111
N
ÿ
ÿ
1
N
1
ÿ
1
ÿ
1)
Das Zweierkomplement realisiert die positiven Zahlen wie gehabt. Für eine positive Zahl x mit dem Bitmuster dN ÿ1 dN ÿ2 : : : d1 d0 verwenden wir für x die Darstellung +(1 dN ÿ1 )(1 dN ÿ2 ) : : : (1 d1 )(1 d0 ) + (1)2 . Das Zweierkomplement
wird durch Bildung des Einerkomplements des Absolutbetrags und anschließende Addition der Zahl (1)2 gebildet.
Beispiele:
ÿ
ÿ
ÿ
ÿ
ÿ
Die Darstellung von x
net sich als
1)10
mit N
= 8
Bit im Zweierkomplement berech-
jÿ j
100)10
in einem System mit N
= 10
jÿ j
100 :
Einerkomplement:
+1:
100:
ÿ
0000
0001
1111
1110
1111
1111
1
ÿ
durch
ÿ
ÿ
= (
ÿ
ÿ
1 :
Einerkomplement:
+1:
1:
ÿ
(
ÿ
Bit ist als Zweierkomplement gegeben
00
0110
0100
11
1001
1011
11
1001
1100
1
100)10 in einem System mit N = 16 Bit wird durch das Zweierkomplement
dargestellt als 1111 1111 1001 1100. Wenn die Anzahl der Bits für das Zweierkomplement vergrößert wird, kann die Darstellung leicht berechnet werden.
Bei einer negativen Zahl wie 100 werden die führenden Stellen mit 1 aufgefüllt, bei einer positiven Zahl mit 0.
(
ÿ
2.3 Zahlendarstellung im Computer
49
Mit der Darstellung als Zweierkomplement erhalten wir eine eindeutige Codierung der Null, dafür ist der Zahlenbereich unsymmetrisch:
: : : 000 ù
= 0
000 : : : 001 ù
= 1
000 : : : 010 ù
= 2
::::::
011 : : : 111 ù
= 2
: : : 111 ù
= ÿ1
111 : : : 110 ù
= ÿ2
::::::
ÿ
100 : : : 001 ù
= ÿ(2
ÿ
100 : : : 000 ù
= ÿ2
000
111
N
ÿ
1
ÿ
N
1
N
1
ÿ
1)
1
Beispiel:
Im Zweierkomplement wird eine Subtraktion auf eine Addition im Rechenwerk
zurückgeführt. Das Ergebnis von (13)10 (21)10 ist offensichtlich ( 8)10 . Dezimal
ist dies identisch mit (13)10 + ( 21)10 . Im Zweierkomplement mit N = 5 Bit wird
(13)10 durch 01 101 dargestellt, ( 21)10 durch 01 011. Die Addition dieser beiden
Bitfolgen ergibt 11 000; dies entspricht der Zahl ( 8)10 im Zweierkomplement!
Das Zweierkomplement wird in den Mikroprozessoren von Intel verwendet, mit
den Längen N = 16; 32 und 32 werden damit die Datentypen short integer, word
integer und long realisiert. Diese Datentypen haben immer eine größte und eine
kleinste darstellbare ganze Zahl imax und imin , die je nach Implementierung verschieden sind.
ÿ
ÿ
ÿ
ÿ
ÿ
Tabelle 2.3: Ganzzahlige Datentypen in C und ihre Zahlbereiche
Datentyp
unsigned short int
short int
unsigned int
int
unsigned long int
long int
imin
imax
0
65 535
0
4 294 967 295
ÿ32 768
ÿ2 147
ÿ2 147
32 767
483 648
2 147 483 647
0
4 294 967 295
483 648
2 147 483 647
Durch Multiplikation der Bitfolge vdN ÿ2 dN ÿ3 : : : d1 d0 mit dem Faktor 2ÿk können
wir Binärbrüche mit k Stellen nach dem Binärpunkt darstellen, genauso wie das
vorher mit Dezimalbrüchen möglich war:
vd
N
ÿd ÿ
2
N
3
:::d d
1
0
ùÿ
ùÿ
= (
= (
v
ÿ
d
d ÿd
1) 2
v
1)
k
N
( 02
2
N
0
d 2 + þþþ + d ÿ 2
: : : d :d ÿ : : : d d :
+
ÿ
3
1
1
k
k
1
N
2
1
0
N
ÿ
2
)
Diese skalierte Zahlenmenge nennen wir Festpunkt-Zahlensystem. Sie hat den
großen Nachteil, dass der Bereich der darstellbaren Zahlen ein für allemal festliegt. Aus diesem Grund werden Zahlendarstellungen für rationale Zahlen benutzt, die variable Darstellungsbereiche zulassen. Dazu halten wir den Skalierungsfaktor nicht fest, sondern geben seine aktuelle Größe mit an. Wir gelangen
so zu den Gleitpunkt-Zahlensystemen oder floating point numbers.
50
2 Zahlen
Wir zerlegen bei dieser Darstellung die verwendete Bitfolge in drei Teile: in das
Vorzeichen v , den Exponenten e und die Mantisse M . Die Aufteilung des Bitfelds ist
bei jeder Gleitpunkt-Codierung genau festgelegt. Die Mantisse M ist eine positive
reelle Zahl in Festpunkt-Darstellung
X ÿ
db
p
M=
i
i
i=1
bezüglich einer festen Basis b mit dem Komma genau vor der ersten Ziffer. Der
Exponent ist eine ganze Zahl. Insgesamt ist die dargestellte reelle Zahl x gegeben
durch
x = (ÿ1) Mb :
v
e
Je nach Wahl der Basis, der Festpunkt-Darstellung der Mantisse und den zulässigen Werten für den Exponenten erhalten wir eine bestimmte Menge von darstellbaren reellen Zahlen.
In der Norm IEC 559:1989 für binäre Gleitpunkt-Arithmetiken werden zwei
Grundformate festgelegt: das einfach lange Format oder single format mit einer Formatbreite von 32 Bit; davon werden 1 Bit für das Vorzeichen, 8 Bit für den Exponenten und 23 Bit für die Mantisse verwendet. Das doppelt lange Format oder double
format mit einer Formatbreite von 64 Bit verwendet 1 Bit für das Vorzeichen, 11 für
den Exponenten und 52 für die Mantisse.
Tabelle 2.4: Gleitpunkt-Zahlensysteme
IEC-Norm, single format
IEC-Norm, double format
Intel-Mikroprozessoren
IBM /390
IBM /390
IBM /390
Taschenrechner
b
p
emin
emax
2
24
128
2
53
2
64
ÿ125
ÿ1021
ÿ16381
ÿ64
ÿ64
ÿ64
ÿ98
16
6
16
14
16
28
10
10
1024
16384
63
63
63
100
normalisiert?
ja
ja
ja
nein
nein
nein
nein
Diese Festlegungen legen die Darstellung einer Zahl x noch nicht eindeutig fest.
Die Zahl x = 0; 1 kann in einem dezimalen Gleitpunktsystem mit sechs Mantissenstellen durch 0; 100000 100 oder durch 0; 010000 101 darstellen. Um die
Eindeutigkeit zu erzielen, stellen wir die Forderung
þ
þ
d
1
6
= 0
ohne den Umfang der darstellbaren Zahlen einzuschränken. Die so entstandenen Gleitpunktzahlen nennen wir normalisiert. Das single-Format der IEC-Norm
sieht eine Charakteristik“ für die Speicherung des Exponenten vor. Damit soll
”
sichergestellt werden, dass positive und negative Exponenten immer durch eine
positive Charakteristik ausgedrückt werden. Dies wird durch Addition von 127
2.3 Zahlendarstellung im Computer
51
zum Wert des Exponenten erreicht. Die Mantisse m wird normalisiert, sodass sie
in Binärdarstellung immer die Form
jmj
; XXX : : : XXX
= 1
üj j
mit X = 0 oder X = 1 hat, damit ist 1
m < 2. Die Stelle 1, das ”hidden bit“
vor dem Komma, kommt stets vor und wird deshalb einfach weggelassen, um
Speicherplatz zu sparen.
Beispiele:
ÿ
Die Umwandlung einer Gleitpunktzahl in das IEC single-Format erfolgt in
mehreren Schritten. Zuerst wird daraus eine Zahl in Binärdarstellung gemacht. Die Dezimalzahl 15625 entspricht der Binärzahl 1111; 101 20. Durch das
Normalisieren der Mantisse wird diese Zahl zu 1; 111101 23 . Durch Auffüllen
auf der Mantissenlänge 23 ergibt sich die Mantissendarstellung
þ
þ
m = 11 110 100 000 000 000 000 000:
Die Charakteristik ergibt sich im Dezimalsystem als Summe 3 + 127 = 130, die
binär durch
c = 10 000 010
repräsentiert wird. Das Vorzeichen ist positiv, dies wird durch eine führende 0
im Bitmuster gespeichert. Insgesamt wird 15 625 durch
Vz Charakteristik Mantisse
0
ÿ
10 000 010
11 110 100 000 000 000 000 000
dargestellt.
Die Umwandlung aus dem IEC single–Format in eine Dezimalzahl ist analog
durchzuführen. Das Bitmuster
0
10 000 010
11 110 100 000 000 000 000 000
stellt eine positive Zahl dar. Die Charakteristik entspricht (129)10 , der Exponent ist also 129 127 = 2. Die Mantisse ist m = 1; 110 010, das entspricht dem Dezimalbruch 1; 781 25. Die dargestellte Zahl entspricht insgesamt
2
1; 781 25 2 = 7; 125.
þ
ÿ
Insgesamt ist ein Gleitpunkt-Zahlensystem durch vier ganze Zahlen und eine
Aussage charakterisiert: die Basis b, die Mantissenlänge p, der kleinstmögliche Exponent emin , der größtmögliche Exponent emax und die Festlegung, ob wir eine
normalisierte Darstellung verwenden.
Neuere Implementierungen von C++ benutzen die Klasse numeric limits, mit deren Hilfe wir die Eigenschaften der implementierten Zahltypen abfragen können.
Die Gleitpunkt-Zahlensysteme stellen eine endliche Anzahl von Zahlen dar, die
eine viel größere Anzahl von reellen Zahlen annähert. Alle irrationalen Zahlen
52
2 Zahlen
Tabelle 2.5: Attribute und Funktionen in < numeric limits >
Schnittstelle
Bedeutung
T min()
minimal möglicher Wert
T max()
maximal möglicher Wert
int radix
Zahlenbasis
int digits
Ganzzahlen: Anzahl der Bits ohne Vorzeichenbit,
Gleitpunktzahlen: Anzahl der Bits in der Mantisse
int min exponent
kleinster negativer Exponent für Gleitpunktzahlen
int max exponent
größter Exponent für Gleitpunktzahlen
bool is iec559
wahr, falls der Zahlentyp IEC 559 genügt
und die endlichen Dezimalbrüche, die eine längere Mantisse benötigen, können
nur fehlerbehaftet dargestellt werden. Damit entsteht in einer Berechnung auf
dem Computer, in der beispielsweise die Zahl þ auftritt, schon beim Start ein
Fehler. Es gibt verschiedene Strategien, Zahlen, die nicht im verwendeten Gleitpunktsystem darstellbar sind, anzunähern. Der am häufigsten angewendete Algorithmus stellt die Rundung auf die vorgegebene Anzahl der Mantissenstellen
dar.
Beispiele:
ÿ
ÿ
þ
Die Gleitpunktzahl 0; 143 86 100 wird in einem System, das nur 4 Stellen für
die Mantisse zur Verfügung stellt, durch Runden zu 0; 143 9 100 .
Die Näherung 3; 141 59 100 für die irrationale Zahl þ mit 5 Nachkommastellen
einer unnormalisierten Mantisse wird zu 0; 314 2 101, falls nur 4 Stellen für die
normalisierte Mantisse zur Verfügung stehen.
þ
þ
þ
þ
Für eine Zahl x = m 10e mit einer normalisierten Mantisse kann die Rundung
auf t Mantissenstellen durch
m0
(
;x x x :::x
0; x x x
: : : (x
=
0
1
2
3
1
2
3
üx ü
üx ü
v þ m0 þ gesetzt. Die normalisierte
t
t + 1)
0
t+1
4
5
t+1
9
e
beschrieben werden. Anschließend wird x0 =
10
Mantisse m erfüllt sicher m
0; 1. Damit kann der relative Rundungsfehler, der
durch die Umwandlung entsteht, durch
ý
0
ÿ
j x xÿ x j ü þ jmj ü þ ÿ
abgeschätzt werden. Die Zahl eps
þ ÿ heißt Maschinengenauigkeit. In binärer
Darstellung kann dies genau so durchgeführt werden. Ausgehend von der Darstellung x m þ mit ÿ ü m < wird durch
5
= 5
=
2
e
2
m0
=
1
(
10
(t+1)
5
10
t
t
10
1
;x x x :::x
0; x x x
:::x
0
1
1
2
2
3
3
t
t + 2
ÿ
t
x
x
t+1 = 0
t+1 = 1
2.3 Zahlendarstellung im Computer
53
gerundet. Die Maschinengenauigkeit wird jetzt als eps = 2ÿt definiert.
Beispiele:
ÿ
ÿ
Wenn 4 Mantissenstellen und 2 Stellen für den Exponenten zur Verfügung stehen, wird aus der Zahl x = 0; 99997 1099 durch Runden und Normalisieren die
Zahl x0 = 0; 000 0 10100 . Diese Zahl ist aber nicht darstellbar, da nur 2 Stellen
für den Exponenten vorgesehen sind. Dieser Effekt heißt Exponentenüberlauf
und ist sehr unangenehm. Tritt er während der Berechnung auf – x könnte ja
das Zwischenergebnis darstellen –, dann bricht der Computer mit einer Fehlermeldung ab.
Die Zahl x = 0; 012 345 10ÿ99 wird für 4 Mantissenstellen und 2 Exponentenstellen zu x0 = 0; 123 5 10ÿ100 . Diese Zahl ist ebenfalls nicht mehr darstellbar.
Der auftretende Effekt heißt Exponentenunterlauf. Im Gegensatz zum Überlauf
wird der Unterlauf in der Regel nicht als Fehler behandelt, die Computer behandeln das Ergebnis individuell. Auf jeden Fall ist Vorsicht geboten, denn es
entsteht ein Fehler, der deutlich größer ist, als wenn gerundet würde!
þ
þ
þ
þ
Die meisten Computer benutzen für die arithmetischen Rechenoperationen ein
Register mit der doppelten Mantissenlänge, nach jeder Operation wird dieses Register gerundet, manchmal auch abgeschnitten. Numerische Berechnungen, die
eine Vielzahl von Gleitpunktoperationen benötigen, werden leicht instabil, die
häufigste Ursache dafür ist die Subtraktion von zwei Zahlen, die in etwa gleich
groß sind. Das Ergebnis besitzt eine große Zahl von führenden Nullen im Register,
die bei der Abbildung auf die Mantisse dafür sorgt, dass die richtig berechneten
Stellen ausgelöscht werden. In der numerischen Mathematik gibt es eine Vielzahl
von Algorithmen, die auf Grund von Rundungsfehlern zu einer völligen Katastrophe führen, die Kunst“ der Numerik besteht darin, dies zu erkennen und zu
”
vermeiden ([PFTV93, Ueb95]).
Beispiele:
ÿ
Angenommen, es stehen 8 Stellen für eine normalisierte Mantisse für die Addition der drei Zahlen
x = 0; 233 712 58 þ 10ÿ ;
y = 0; 336 784 29 þ 10 ;
z = = ÿ0; 336 778 11 þ 10
4
2
2
zur Verfügung. Das exakte Ergebnis ist x + y + z = 0; 641 371 258
nachdem, wie die Klammern gesetzt werden, ergibt sich
x0 + (y0 + z 0 ) = 0; 233 712 58 þ 10ÿ + 0; 618 þ 10ÿ
ÿ;
= 0; 641 371 26 þ 10
0 0 0
(x + y ) + z = 0; 336 784 52 þ 10 ÿ 0; 336 778 11 þ 10
ÿ:
= 0; 641 þ 10
4
3
3
2
3
2
þ
ÿ . Je
10
3
54
ÿ
ÿ
2 Zahlen
In Gleitkommasystemen ist das Assoziativgesetz im Allgemeinen verletzt.
Es ist vollkommen klar, dass die Berechung von 2n (2n 1) ab irgendeiner
Zahl n als Ergebnis nur noch 0 liefern wird. Es gab in der Vergangenheit sogar
Rechnerarchitekturen, die bis n = 56 bei doppelt genauem Format die richtige
Antwort 1 ausgaben, aber für n = 57 das Ergebnis 16, was an der Basis b = 16
der Gleitpunktarchitektur lag. Ab n = 58 kam die erwartete 0. Dies ist kein
Fehler in der Architektur des Prozessors, sondern liegt in der Näherung der
reellen Zahlen durch die reellen“ Zahlenformate auf dem Computer.
”
Die äquivalenten Ausdrücke
ÿ ÿ
99
ÿ p p
70
2 =
9801
ÿp
p
9800 =
1
9801 +
p
;
= 0 00505063
9800
:::
im Dezimalsystem mit verschiedenen Mantissenlängen 2; 4 und 6 lassen in Tabelle 2.6 den Auslöschungseffekt deutlich werden.
Tabelle 2.6: Der Auslöschungseffekt an einem Beispiel
p
p
p
1
Mantissenlänge 99 ÿ 70 2
9801 ÿ 9800
9801+
p
p
9800
2
1; 0
0; 0
0; 0050
4
0; 02000
0; 01000
0; 005051
6
0; 00530000
0; 00510000
0; 00505063
2.4 Aufgaben
p
p
1. Beweisen Sie, dass 3 irrational ist! Wenn Sie die gleiche Beweistechnik für
4 einsetzen, muss der Beweis abbrechen – warum?
2. Berechnen Sie für die Zahlen
4; y3 = 3 und y4 = 1
x
= 5
1
;x
X Y X
4
4
x;
x;
i
i=1
3. Berechnen Sie
i
i=1
1
i
i=1
10
;
3
Y
4
xy
i
;x
i
und
i=1
X X
10
4
= 2
2
= 1
xy:
i
Y
i ÿ 2):
10
i + 3) und
i=1
(6
i=1
4. Bestimmen Sie die Polarkoordinatendarstellung von
i) 2 ; (ÿ8 + i8
1
i
i=1
(
(1 +
;x
p
1
3) 4
; (i) 3 :
1
4
= 2
;y
1
= 1
;y
2
=
2.4 Aufgaben
55
5. Berechnen Sie die 5-ten Einheitswurzeln und stellen Sie diese in der komplexen Zahlenebene dar.
6. Warum kann das Konstruktionsverfahren für die Dezimalbruchdarstellung einer reellen Zahl nie zu der Situation führen, dass ab irgendeiner Nachkommastelle alle Koeffizienten dj gleich 0 werden?
7. Wenden Sie das Divisionsverfahren auf die natürliche Zahl
verschiedenen Basen b = 5 und b = 2 an!
n
= 674
für die
8. Wandeln Sie die Zahl (745)8 in das System zur Basis b = 3 um!
9. Formal kann mit Darstellungen zu einer Basis b gerechnet werden, wie wir
das vom Dezimalsystem gewohnt sind. Prüfen Sie dies an Hand der Beispiele
(543)6 + (242)6 = (1225)6 ; (213)6
(132)6 = (41)6 und (153)6 (23)6 = (4443)6
nach!
ÿ
þ
10. Berechnen Sie die Entwicklung zur Basis 7 von
11. Wandeln Sie die Dezimalzahlen
single-Format um!
1
5
und von
; ; ÿ0; 5; ÿ6; 625
1 0
und
2
5
zur Basis 2!
ÿ
3456
in das IEC
12. Welche Dezimalzahlen werden durch die IEC single-Format-Bitmuster
1
10 000 000
10 000 000 000 000 000 000 000
1
10 100 000
00 100 000 000 000 000 000 000
dargestellt?
13. Wie viele Zahlen enthält ein normalisiertes Gleitpunkt-Zahlensystem mit den
Parametern b; p; emin und emax ?
14. Wie sieht die größte und kleinste darstellbare Gleitpunktzahl in einem normalisierten System mit den Parametern b; p; emin und emax aus? Welche Zahlen
ergeben sich für die IEC-Grundformate?
15. Gegeben sind die beiden Rekursionen
f
0
= 1
ÿ e;f
1
k+1 = 1
und
G
N
gegeben; N
> k; g
k =
1
ÿ
k + 1)f
(
k
ÿg
k+1
k+1
:
Die Rekursion für gk erhalten wir durch Auflösen der Rekursion für f nach
fk . Berechnen Sie f30 mit dem Computer und vergleichen Sie das Ergebnis mit
g30 . Dabei verwenden Sie für g50 einen beliebigen Startwert zwischen 1010
und 1010 !
ÿ
Herunterladen