18
Hochschule Fakultät Technologie und Management Informationsverarbeitung Ravensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme DV1_Kapitel_2.doc Seite 2-1 von 18 Rüdiger Siol 12.09.2009 16:27 Inhalt 2 ZAHLENSYTEME ..........................................................................................................................................2-2 2.1 ZAHL .........................................................................................................................................................2-2 2.2 ZAHLENDARSTELLUNG .............................................................................................................................2-3 2.2.1 Zahlensysteme für die EDV.................................................................................................................2-5 2.2.2 Umwandlung (Konvertierung) ............................................................................................................2-6 2.2.2.1 Konvertierung von Dualzahlen in Oktal- bzw. Hexadezimalzahlen ........................................................2-7 2.2.2.2 Konvertierung von Dual-, Oktal- bzw. Hexadezimal- in Dezimalzahlen ................................................2-8 2.2.2.2.1 Ganze rationale Funktionen .................................................................................................................2-8 2.2.2.2.2 Anwendung des Hornerschemas zur Konvertierung........................................................................ 2-10 2.2.2.3 Konvertierung von Dezimalzahlen in Dual-, Oktal- bzw. Hexadezimalzahlen.................................... 2-11 2.2.2.3.1 Die Dezimalzahl 27 soll im Dualsystem dargestellt werden. .......................................................... 2-11 2.2.2.3.2 Die Dezimalzahl 0,0033125 soll im Dualsystem dargestellt werden.............................................. 2-13 2.2.3 Zahlendarstellung im Computer .......................................................................................................2-14 2.2.3.1 Festpunktzahlen ....................................................................................................................................... 2-15 2.2.3.2 Gleitpunktzahlen im IEEE-Standard ...................................................................................................... 2-16

Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-1 von 18 Rüdiger Siol12.09.2009 16:27

Inhalt

2 ZAHLENSYTEME ..........................................................................................................................................2-2

2.1 ZAHL .........................................................................................................................................................2-22.2 ZAHLENDARSTELLUNG .............................................................................................................................2-3

2.2.1 Zahlensysteme für die EDV.................................................................................................................2-52.2.2 Umwandlung (Konvertierung) ............................................................................................................2-6

2.2.2.1 Konvertierung von Dualzahlen in Oktal- bzw. Hexadezimalzahlen........................................................2-72.2.2.2 Konvertierung von Dual-, Oktal- bzw. Hexadezimal- in Dezimalzahlen................................................2-8

2.2.2.2.1 Ganze rationale Funktionen .................................................................................................................2-82.2.2.2.2 Anwendung des Hornerschemas zur Konvertierung........................................................................ 2-10

2.2.2.3 Konvertierung von Dezimalzahlen in Dual-, Oktal- bzw. Hexadezimalzahlen.................................... 2-112.2.2.3.1 Die Dezimalzahl 27 soll im Dualsystem dargestellt werden. .......................................................... 2-112.2.2.3.2 Die Dezimalzahl 0,0033125 soll im Dualsystem dargestellt werden.............................................. 2-13

2.2.3 Zahlendarstellung im Computer .......................................................................................................2-142.2.3.1 Festpunktzahlen ....................................................................................................................................... 2-152.2.3.2 Gleitpunktzahlen im IEEE-Standard ...................................................................................................... 2-16

Page 2: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-2 von 18 Rüdiger Siol12.09.2009 16:27

2 Zahlensyteme

2.1 Zahlo Ordnungszahlo Kardinalzahlo Ganzrationale Zahlo Imaginäre Zahlo Irrationale Zahlo Natürliche Zahlo Negative Zahlo Positive Zahlo Rationale Zahlo Reelle Zahlo Komplexe Zahlo Gebrochene Zahlo Algebraische Zahlo Transzendente Zahlo Liouvillsche Zahl

(r.siol) 07.03.2007 Hochschule Ravensburg-WeingartenTechnik | Wirtschaft | Sozialwesen

2

Zahlen• Natürliche Zahlen• Ganze Zahlen• Rationale Zahlen• Reelle Zahlen

– Alle rationalen undirrationalen Zahlensowie auch dietranszendentenZahlen

• Komplexe Zahlen

N = {0,1,2,…}

Z = {…,−3,−2,−1,0,1,2,3,…}

Q = { pq

| p,q∈ Z^q ≠ 0}

A lgebraische_ Irrationalität = 103 = 2.154…

Transzendente_ Zahl = π = 3.141592…

Transzendente_ Zahl = e = 2.718281…

C = {z|z = a + jb mit a,b € R, j2 = -1}

Page 3: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol12.09.2009 16:27

2.2 Zahlendarstellung

Für das numerische Rechnen mit reellen Zahlen verwendet man Darstellungen der nichtnegativen reellen Zahlen als Summe von natürlichzahligen Vielfachen

zν ganzzahligerPotenzen einer vorgegebenen Basis b, wobei b eine natürliche Zahl >1 ist und die Ziffern

zνnur die Werte 0, 1, …, b-1 annehmen können.

Man schreibt abkürzend für eine Zahl Z:

Z = zνbν + zν −1b

ν −1 +… + z1b1 + z0b

0 + z−1b−1 +…+ z−µb

−µ +…

Z = zν zν −1…z1z0,z−1…z−µ …

Das Bildungsgesetz lautet:

Z = zνν =−m

n

∑ bν

m > 0,n ≥ 0;m,n ∈ N( )

Die Ziffern mit

ν ≥ 0 bilden den ganzen, die mit

ν < 0 den gebrochenen Teil der Zahl.

Ein Beispiel hierzu:

Die Dezimaldarstellung, d.h. b = 10, für die Dezimalzahl (Man sagt auchGleitpunktzahl bzw. floating point number; spricht im Deutschen1 aber auch vonGleitkommazahlen) 139.8125 lautet:

139.8125 =1*102 + 3*101 + 9*100 + 8*10−1 +1*10−2 + 2*10−3 + 5*10−4

Die Zahl gliedert sich in einen ganzen und einen gebrochenen Teil.

Eine Zahl wird also einfach dargestellt durch eine Folge von Ziffern. Die Stellung desKommas (Punktes) gibt Auskunft über die Potenz von b, mit der jede der Ziffern zumultiplizieren ist.

Eine reelle Zahl in Verbindung mit ihrer Darstellung zur Basis 10 heißt Dezimalzahl;analoge Begriffsbildungen lassen sich bei den übrigen Darstellungen vornehmen.

1 In kaufmännischen Bereichen aber auch in vielen anderen, so z.B. auch bei der Verwendung vonTabellenkalkulationsprogrammen wie Excel, wird der Punkt verwendet, um tausender Bereiche vor und nachdem Komma gegeneinander abzugrenzen und die Zahl so übersichtlicher zu machen.In Programmiersprachen wie z.B.: C und C++ trennt der Punkt die Vor- und Nachkommastellen bei denzugehörigen Datentypen wie float, double oder auch long double.

Page 4: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-4 von 18 Rüdiger Siol12.09.2009 16:27

Darstellungen zur Basis:

2 = Dual- oder Binärsystem3 = Ternärsystem4 = Quaternärsystem5 = Quinärsystem8 = Oktalsystem10 = Dezimalsystem12 = Duodezimalsystem16 = Sedezimal-, Hexadezimalsystem

Bei Zahlendarstellungen zur Basis b wird das arithmetische Komplement der gegebenenZahl zu einer vorbestimmten Potenz der Basis b als b-Komplement bezeichnet (z.B.Zehnerkomplement im Dezimalsystem). Das (b – 1) Komplement ist die Zahl, die man erhält,wenn man jede Ziffer der gegebenen Zahl von b – 1 subtrahiert (z.B. Neunerkomplement imDezimalsystem).

Page 5: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-5 von 18 Rüdiger Siol12.09.2009 16:27

2.2.1 Zahlensysteme für die EDV2

Im Zusammenhang mit der Nutzung von Computern sind folgende Zahlensystemegebräuchlich:

Zahlensystem Basis zulässige ZiffernDualsystem 2 0, 1Oktalsystem 8 0, 1, 2, 3, 4, 5, 6, 7Hexadezimalsystem(Sedezimalsystem)

16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F(Die Buchstaben A…F stehen für die Werte 10…15 und könnenauch als Kleinbuchstaben dargestellt werden

Dezimalsyastem 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Dual- Oktal- Dezimal- Hexadezimal-

Hexadezimal-

0 0 0 0 01 01 1 0X 1 0x 1

10 02 2 0X 2 0x 211 03 3 0X 3 0x 3

100 04 4 0X 4 0x 4101 05 5 0X 5 0x 5110 06 6 0X 6 0x 6111 07 7 0X 7 0x 7

1000 010 8 0X 8 0x 81001 011 9 0X 9 0x 91010 012 10 0X A 0x a1011 013 11 0X B 0x b1100 014 12 0X C 0x c1101 015 13 0X D 0x d1110 016 14 0X E 0x e1111 017 15 0X F 0x f

10000 020 16 0X10 0x1010001 021 17 0X11 0x1110010 022 18 0X12 0x12

… … … … …

Sofern die Zahlen von 0 verschieden sind schreibt man:

Dezimalzahlen beginnend mit einer von 0 verschiedenen ZifferOktalzahlen immer mit einer führenden 0Hexadezimalzahlen immer mit 0x bzw. 0X am Anfang

Weitere Schreibweisen sind:

213.64 8( )

213.64( )8 2 EDV – Elektronische Daten Verbeitung

Page 6: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-6 von 18 Rüdiger Siol12.09.2009 16:27

2.2.2 Umwandlung (Konvertierung)

Die Umrechnung von einem Zahlensystem in ein anderes nennt man Konvertierung.Werden mehrere Zahlensysteme gleichzeitig benutzt, so ist es üblich, die Basis als Indexanzuhängen.

Z.B.: für die Dezimalzahl 139.8125 ergibt sich dann:

139.812510 = 10001011.11012 = 213.648 = 8B.D16

Man kann von jedem System direkt in jedes andere Konvertieren. Die dicken Pfeilezeigen den jeweils bequemsten Weg; die anderen Varianten sind umständlicher oderzeitaufwendiger.

Dualsystem

Oktalsystem Hexadezimalsystem

Dezimalsystem

Page 7: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-7 von 18 Rüdiger Siol12.09.2009 16:27

2.2.2.1 Konvertierung von Dualzahlen in Oktal- bzw. Hexadezimalzahlen

Die Konvertierung von Dualzahlen in Oktal- bzw. Hexadezimalzahlen ist einfachdadurch möglich, dass man vom Punkt ausgehend nach links und rechts Gruppen von drei (fürOktalzahlen) bzw. vier (für Hexadezimalzahlen) Bits bildet und den Wert derselben bestimmt.Diese Ziffern sind dann die Ziffern des Oktal- bzw. Hexadezimalsystems.

Umgekehrt ersetzt man einfach die Ziffern des Oktal- bzw. Hexadezimalsystems durchdie zugehörige Dualzahl. Da 8 und 16 je ganzzahlige 2-er Potenzen sind, passt das dann.

Beispiel:

Gegeben sei 11001110101001012 als einfache ganze Zahl, den Punkt muss man sichalso ganz rechts denken. Damit liest man die Oktalzahl unmittelbar ab, denn man sieht, dieGruppierung 1 100 111 010 100 1012 also ist die Oktalzahl 1472458; entsprechend für dieHexadezimalzahl erst die Gruppierung: 1100 1110 1010 01012; also ist das die Zahl CEA516in hexadezimaler Darstellung. Dabei dürfen die Buchstaben aber auch klein geschriebenwerden, also cea516.

In Programmiersprachen wie C und C++ ist festgelegt, dass Dezimalzahlengrundsätzlich mit der ersten von 0 verschiedenen Ziffer beginnen, bei Oktalzahlen wirdimmer eine 0 vorangestellt (0147245) und bei Hexadezimalzahlen die Zeichenfolge 0x oder0X (0XCEA5 oder 0xcea5 oder auch gemischte Groß- und Kleinschreibung – das sieht abernach Schlamperei aus obwohl es zulässig ist).

Page 8: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-8 von 18 Rüdiger Siol12.09.2009 16:27

2.2.2.2 Konvertierung von Dual-, Oktal- bzw. Hexadezimal- in Dezimalzahlen

Der Algorithmus für die Umwandlung eines Wertes aus dem Dual-, Oktal- bzw.Hexadezimalsystem in das Dezimalsystem lautet, wobei der Dezimalpunkt nach z0 einzufügenist.

a = ziBi

i=−m

n

m > 0,n ≥ 0;m,n ∈ N( )

Die Auflösung erfolgt dabei zweckmäßig mit dem Horner-Schema; das nachfolgendim Zusammenhang mit ganzen rationalen Funktionen erklärt und in Beispielen gezeigt wird.

2.2.2.2.1 Ganze rationale Funktionen

Eine Funktion der Form

y = f x( ) = anxn + an−1x

n−1 +… + a1x + a0

oder kurz

y = aixi

i= 0

n

worin ai irgendwelche reelle Zahlen sind und n nichtnegativ ganz ist, heißt eine ganzerationale Funktion oder auch ein Polynom (in x). Die ai werden Koeffizienten des Polynomsgenannt.

Ein Polynom heißt n-ten Grades oder von n-ter Ordnung, wenn der größte auftretendeExponent von x gleich n ist; in der oben angegebenen Form also genau dann, wenn an ≠ 0 ist.Sollen die Werte eines Polynoms für verschiedene x berechnet werden, so müssen in derangegebenen Form n Potenzwerte ermittelt und mit den Koeffizienten ai multipliziert werden.Außerdem sind dann noch alle aixi zu addieren. Das gibt zuweilen recht langwierigeRechnungen.

Page 9: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-9 von 18 Rüdiger Siol12.09.2009 16:27

Meist ist es einfacher ein Polynom in der Form

y = (((…(anx + an−1)x + an−2)x + an−3)x +…+ a1)x + a0

aufzuschreiben und entsprechend zu berechnen.

Diese Gleichung ist die formelmäßige Darstellung des Hornerschen Schemas.Praktisch kann also der Wert eines Polynoms f(x) vom Grad n für einen beliebigen Wert vonx durch das folgende Schema bestimmt werden:

an an-1 an-2 an-3 … a2 a1 a0x x* a’n x* a’n-1 x* a’n-2 … x* a’3 x* a’2 x* a’1

a’n a’n-1 a’n-2 a’n-3 … a’2 a’1 a’0

In der ersten Zeile stehen die gegebenen n+1 Koeffizienten ai des Polynoms, und zwarauch die, die gleich Null sind! Ist außerdem x gegeben, so erhält man die im Schemaauftretenden Größen a’i rekursiv nach den Formeln

a’n = ana’i = ai + x*a’i+1

∀i ∈ (n −1)…0( )

Es wird immer zuerst die erste Zeile hingeschrieben und dann von links nach rechtsfortschreitend spaltenweise weitergerechnet. Der gesuchte Polynomwert ist:

f(x) = a’0

Beispiel:

Gegeben sei das Polynom 4-ten Grades:

y = −5x 4 + 25x 2 − 7x + 3

Man berechne den Funktionswert an der Stelle x = -2

-5 0 25 -7 3x=-2 10 -20 -10 34

-5 10 5 -17 37

Der gesuchte Polynomwert ist also:

f(-2) = 37

Dieses Vefahren bezeichnet man als Hornersches3 Schema. 3 Ein von Horner (Horner, William Georg 1786 – 1837) und schon vorher von Ruffini (Ruffini, Paolo 1765 –1822) gegebenes Schema zur Berechnung der Funktionswerte.

Page 10: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-10 von 18 Rüdiger Siol12.09.2009 16:27

2.2.2.2.2 Anwendung des Hornerschemas zur Konvertierung

Wir haben gesehen, dass jede Zahl eines beliebigen Zahlensystems sich als Polynomdarstellen lässt in der Form:

a = ziBi

i=−m

n

Wenn wir da mit der eben besprochenen Funktion

y = aixi

i= 0

n

∑ vergleichen sieht man

unmittelbar, dass sich B und x entsprechen. Nur vereinfacht sich alles, da B nur die Werteentsprechend der Basis der Zahlensysteme haben kann und für die ganzzahligen Koeffizientengilt 0 ≤ zi < B. Man muss sich nur noch daran gewöhnen, dass die Anwendung desHornerschemas zur Konvertierung z.B. von Dualzahlen ins Dezimalsystem furchtbar einfachwird.

Beispiel:

Die Dualzahl 100111002 soll in eine Dezimalzahl umgewandelt werden.

1 0 0 1 1 1 0 0B=2 2*1 2*2 2*4 2*9 2*19 2*39 2*78

1 2 4 9 19 39 78 156

Wenn wir nun z.B. die Regel zur Konvertierung von Dualzahlen in Oktal- bzw.Hexadezimalzahlen anwenden, so sieht man, dass die Dualzahl 100111002 der Oktalzahl 2348entspricht und wir können unser Hornerschema erneut anwenden:

2 3 4B=8 8*2 8*19

2 19 156

Das ging jetzt deutlich schneller und führt (natürlich) zum selben Ergebnis. Machenwir das ganze jetzt noch für die entsprechende Hexadezimalzahl, denn es entspricht derDualzahl 100111002 die Hexadezimalzahl 9C16.

9 CB=16 16*9

9 156

Das ging jetzt noch schneller, ist aber unpraktisch weil wir es nicht gewohnt sind, imHexadezimalsystem zu rechnen.

Page 11: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-11 von 18 Rüdiger Siol12.09.2009 16:27

2.2.2.3 Konvertierung von Dezimalzahlen in Dual-, Oktal- bzw. HexadezimalzahlenFür die Konvertierung vom Dezimal- in eines der anderen Systeme gelten für den

ganzen und den gebrochenen Teil der Dezimalzahl folgende Algorithmen4:

a.) Ganzer Teil:

Ist G die ganze Zahl im Dezimalsystem, dann gilt für das Zahlensystem mit der Basis B dasBildungsgesetz:

G = ziBi

i= 0

n

∀(n ≥ 0)

Dividiert man G durch B, so erhält man einen ganzzahligen Teil (die Summe) und einen Rest:

GB

= ziBi−1

i=1

n

∑ +z0B

Dabei nimmt z0 die Werte 0,1,…,B-1 an und ist die niederwertige Ziffer des Zahlensystems.Wendet man das Verfahren jetzt auf die abgespaltete Summe wiederholt an, so ergeben sichdie weiteren Ziffern.

b.) Gebrochener Teil:

Ist g ein echter Dezimalbruch, so lautet die Vorschrift in die Konvertierung in dasZahlensystem mit der Basis B jetzt:

g*B = z−1 + z− iB−i+1

i= 2

m

Die wiederholte Anwendung auf die entstehenden Summen liefert die Werte

z−1,z−2,…

2.2.2.3.1 Die Dezimalzahl 27 soll im Dualsystem5 dargestellt werden.

4 In der Datenverarbeitung und Informatik ist ein Algorithmus allgemein eine in einer geeigneten formalisiertenSprache angegebene Folge von exakten Arbeitsanweisungen (Rechenanweisungen) an einen Computer, durchdie der Lösungsweg eines mathematischen Problems in endlich vielen ausführbaren elementarenVerarbeitungsschritten eindeutig beschrieben wird. Für derartige algorithmische Programmierungen vonRechenprozessen geeignete formalisierte Sprachen sind ALGOL, FORTRAN, PASCAL, C, C++ u.a.5 Die Begriffe Dualsystem, Binärsystem, dyadisches System sind Synonym.

Dividend Divisor Quotient Rest Wertigkeit27 : 2 = 13 1 013 : 2 = 6 1 16 : 2 = 3 0 23 : 2 = 1 1 31 : 2 = 0 1 4

Page 12: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-12 von 18 Rüdiger Siol12.09.2009 16:27

Es ist also:

27(10) = 2*101 + 7*100 =1*24 +1*23 + 0*22 +1*21 +1*20 =11011 2( )

Gegeben war also eine Zahl im Dezimalsystem und ermittelt wurden die Ziffern imDualsystem. Der Algorithmus ist auf jedes Zahlensystem anwendbar; dann muss er auch aufdas Dezimalsystem anwendbar sein und wir erhalten:

Es ist also:

27(10) = 2*101 + 7*100

ein Ergebnis das natürlich trivial erscheint weil wir die Ziffern in diesem dezimalenStellenwertsystem sehen und wissen, dass es nun mal so definiert ist. Ein Programm in einerRechenanlage „sieht“ das allerdings nicht; der Algorithmus wäre also immer anzuwenden,auch wenn er uns trivial erscheint.

Dividend Divisor Quotient Rest Wertigkeit27 : 10 = 2 7 02 : 10 = 0 2 1

Page 13: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-13 von 18 Rüdiger Siol12.09.2009 16:27

2.2.2.3.2 Die Dezimalzahl 0,0033125 soll im Dualsystem dargestellt werden

Im Dualsystem gilt: 0,0033125(10) = 0,000000001101(2) wobei ein Fehler <= 2-12 auftrittwegen der begrenzten Stellenzahl.

Im Oktalsystem gilt: 0,0033125(10) = 0,001544264162(8) wobei ein Fehler <= 8-12

auftritt wegen der begrenzten Stellenzahl.Man beachte, dass man nach dem gleichen Verfahren auch die Ziffern im

Dezimalsystem ermitteln könnte; nur erscheint das natürlich überflüssig, da man diese jasowieso sieht; in einem Programm ist der Algorithmus erforderlich da es die Ziffern ebennicht „sieht“.

Wertigkeit0,0033125 * 2 = 0,006625 0 -10,006625 * 2 = 0,01325 0 -20,01325 * 2 = 0,0265 0 -30,0265 * 2 = 0,053 0 -40,053 * 2 = 0,106 0 -50,106 * 2 = 0,212 0 -60,212 * 2 = 0,424 0 -70,424 * 2 = 0,848 0 -80,848 * 2 = 1,696 1 -90,696 * 2 = 1,392 1 -100,392 * 2 = 0,784 0 -110,784 * 2 = 1,568 1 -12

Wertigkeit0,0033125 * 8 = 0,0265 0 -10,0265 * 8 = 0,212 0 -20,212 * 8 = 1,696 1 -30,696 * 8 = 5,568 5 -40,568 * 8 = 4,544 4 -50,544 * 8 = 4,352 4 -60,352 * 8 = 2,816 2 -70,816 * 8 = 6,528 6 -80,528 * 8 = 4,224 4 -90,224 * 8 = 1,792 1 -100,792 * 8 = 6,336 6 -110,336 * 8 = 2,688 2 -12

Page 14: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-14 von 18 Rüdiger Siol12.09.2009 16:27

2.2.3 Zahlendarstellung im Computer6

Dies beschränkt sich auf die ZahlendarsteIlung in Digitalrechnern. DasSpeichermedium eines Computers ist in Speicherplätze oder Speicherwörter eingeteilt, vondenen jedes mit einer Adresse versehen ist. Jedes Speicherwort ist selbst wieder in sogenannteBits (binary digits) unterteilt und jedes Bit kann genau zwei Zustände annehmen. Die Anzahlder Bits pro Wort heißt Wortlänge. Die Wortlänge schwankt von Computer zu Computerzwischen 8 und 96 Bit. Zur Speicherung von Zahlen (und auch Instruktionen, Texten) stehendie Speicherwörter zur Verfügung. Da jedes Bit eines Wortes genau zwei Zustände annehmenkann, ist die unmittelbare Beziehung zum Dualsystem mit seinen zwei Ziffern evident. Eswird jede der beiden Dualziffern 0,1 durch einen der beiden möglichen Zustände eines Bitsrepräsentiert.

Bei der Zahldarstellung im Speicher des Computers hat man zwei Methoden zuunterscheiden:

Festkommadarstellung (Festpunktdarstellung) undGleitkommadarstellung (Gleitpunktdarstellung).

Bei beiden wollen wir annehmen, dass die Wortlänge des Computers gleich n ist. Invielen Computern ist es dann auch möglich, mehrere Wörter zusammenzufassen zu einemneuen "Wort", wodurch die Anzahl der darstellbaren Zahlen erhöht werden kann (zweifache,dreifache Wortlänge). Dabei entstehen aber keine prinzipiellen Unterschiede.

Der Zahlenbereich eines Rechenautomaten ist die Menge aller Zahlen zwischen einerendlichen oberen und einer endlichen unteren Grenze, die ein (Zahl-)Register einesRechenautomaten aufnehmen kann. Auf ein Überschreiten dieses Bereichs, einen sogenanntenÜberlauf, reagiert der Rechenautomat in angemessener Weise. Ein Skalenfaktor ist ein Faktormit dem eine reelle Zahl zu multiplizieren ist, damit sie in einen vorgeschriebenenZahlenbereich fällt.

Bei der Festkommadarstellung ist neben der Wortlänge schon von der Rechenanlageher auch die Stellung des "Dualpunktes" (in der Dualdarstellung entsprechend demDezimalpunkt) fixiert7. Von der Wortlänge n entfällt so 1 Bit auf das Vorzeichen der Zahl, n1Bits stehen für die Stellen vor dem Komma der Dualzahl und n2 Bits für die Stellen nach demKomma der Dualzahl zur Verfügung, wobei n1 + n2 = n - 1 ist und jedes Bit eine derDualziffern der darzustellenden Zahl aufnimmt.

6 Willibald Dörfler, Werner Peschek; Einführung in die Mathematik für Informatiker; Carl Hanser VerlagMünchen Wien (1988); ISBN 3-446-15112-57 Das gilt dann immer; würde man zulassen, dass das Komma (der Punkt) immer an anderer Stelle steht ergäbesich eine sehr komplizierte und aufwendige Logik.

Vorzeichen

,n1 n2

n-1

Page 15: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-15 von 18 Rüdiger Siol12.09.2009 16:27

2.2.3.1 FestpunktzahlenDer Wertebereich der positiven Festpunktzahlen mit den angegebenen Parametern

ergibt sich zu

0 ≤ a ≤ 2n −1

Festpunktzahlen können in nachfolgender Form dargestellt werden:

Zur Darstellung ganzer Zahlen wird die Festkommadarstellung mit n2 = 0 verwendet,im kaufmännischen Bereich wird eine solche mit n2 = 2 verwendet. Beschränkt man dieFestkommadarstellung auf ganze Zahlen, so kann man alle ganzen Zahlen von

−2n−1 bis

2n−1 −1( )exakt darstellen; größere oder kleinere Zahlen sind nicht erfassbar, und sollte imLaufe einer Rechnung eine solche auftreten, so wird dies (hoffentlich) von der Anlage an denBenutzer gemeldet.

Eine andere Zahlendarstellung basiert darauf, dass man mittels 4 Bits sechzehnverschiedene Zeichen binär (dual) verschlüsseln kann, also etwa die Zahlen 0 bis 15. Diesekann man aber als die Ziffern des Hexadezimalsystems (Basis 16) ansehen, wobei für10,11,12,13,14,15 die Symbole A, B, C, D, E, F geschrieben werden. Eine Zahl im Systemmit Basis 16 lässt sich dann durch eine entsprechende Folge von 4-BitGruppen im Speicherrepräsentieren. Welcher Zahlenbereich insgesamt darstellbar ist, hängt wieder von derWortlänge ab, wobei diese üblicherweise ein Vielfaches von 8 ist. Ist z.B. die Wortlänge 32,so hat man 8 4-Bit-Gruppen zur Verfügung. Reserviert man das 1-te Bit der ersten Gruppe fürdas Vorzeichen, so ist die größte darstellbare Zahl 7 F F F F F F F16. Natürlich kann man mitdieser Methode nicht mehr Zahlen darstellen als bei direkter binärer Speicherung.

Dualzahl (n-1 Bits)

Vorzeichen v der Festpunktzahl

Page 16: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-16 von 18 Rüdiger Siol12.09.2009 16:27

2.2.3.2 Gleitpunktzahlen im IEEE-StandardDie heute übliche Form der Gleitpunktdarstellung entspricht dem 1985

verabschiedeten IEEE-Standard8. Diese befasst sich mit der Normung der Rechnerarithmetikund enthält Festlegungen zu den Formaten, dem Rundungsverhalten, den arithmetischenOperatoren, der Konvertierung von Zahlenwerten, zu Vergleichsoperatoren und zurBehandlung von Ausnahmefällen wie Bereichsüberschreitungen. Dort wird für dieGleitpunktzahl folgende Form festgelegt:

Die Charakteristik C wird aus dem Exponenten E durch Addition einer geeignetenKonstanten K gebildet. Diese wird so gewählt, dass für die Charakteristik nur positive Werteauftreten. Die darstellbare Zahl lautet:

a = −1( )v *2E *1.b1b2…bt−1 mit E = C – K

Dabei gilt: Cmin = 1, Cmax = 254; C = 0 und C = 255 sind reserviert; d.h. K = 128.

Der Standard gibt zwei Basisformate vor (einfach- und doppelt-genaueGleitpunktzahlen), lässt aber auch erweiterte Formate zu.

Im Gegensatz zur Darstellung ganzer Zahlen verwendet man zur Darstellung vonreellen Zahlen meistens die Gleitkommadarstellung . Wir gehen wieder von einer festenWortlänge n aus und bemerken zu allererst, dass im Computer nur endlich viele Zahlen exaktdarstellbar sind (sie werden Maschinenzahlen genannt). Für alle anderen (überhauptdarstellbaren) Zahlen, insbesondere für alle Zahlen mit unendlichen Dezimal- (Dual- )Brüchen kommt daher nur eine näherungsweise Darstellung in Frage. DieGleitkommadarstellung beruht auf der Tatsache, dass sich jede reelle Zahl a in der Form

a = b*10e oder

a = c *2 f mit

b <1c <1

e,f ganze Zahlen

darstellen lässt. Diese Darstellung heißt auch die halblogarithmische Darstellung von a; bbzw. c heißen die Mantisse und e bzw. f der Exponent der Darstellung.

8 IEEE – Institute of Electrical and Electronics Engineers.

Charakteristik C = E + K Mantisse M1 11 52

… …

Vorzeichen v der Gleitpunktzahl (d.h. Vorzeichen der Mantisse)

Page 17: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-17 von 18 Rüdiger Siol12.09.2009 16:27

BeispielWir schreiben nebeneinander die übliche Form (Dezimaldarstellung) und die

halblogarithmische Form für einige Zahlen:

3,5261−890012,350,0001925

0,35261*101

−0,89001235*106

0,1925*10−3

Im Beispiel haben wir bereits die sogenannte Normalisierung der Mantissevorweggenommen: Man vereinbart, dass in der Mantisse stets die erste Stelle nach demKomma von Null verschieden sein muss. Dadurch wird die halblogarithmische Darstellungeiner reellen Zahl eindeutig und diese Normalform ist auch platzsparend, da die führendenNullen kürzer im Exponenten angegeben werden. Die Darstellung einer Zahl im Computererfolgt nun prinzipiell so, dass eine bestimmte Anzahl der n Bits eines Wortes zur Darstellungder (normalisierten) Mantisse, ein Bit für das Vorzeichen und die restlichen Bits für denExponenten der halblogarithmischen Darstellung zur Verfügung stehen. Da das Dualsystemverwendet wird, hat man die darzustellende reelle Zahl a in die Form

a = c *2 f zu bringen.Dies geschieht am einfachsten dadurch, dass man a (in Dezimalform) solange durch 2dividiert oder mit 2 multipliziert, bis man eine Zahl d erhält mit 1/2 <= d < 1. Die Anzahl dernötigen Divisionen ist der positive Exponent, die Anzahl der Multiplikationen der negativeExponent. Ist dieser Exponent f, so ist dann a = d * 2f.

BeispielEs sei a = 14,618; man dividiert fortlaufend durch 2 und erhält:

7,309;3,6545;1,82725;0,913625 = d; f = 4.

Also ist 14,618 = 0,913625 * 24.Nun werden die normalisierte Mantisse d und der Exponent f getrennt in Dualzahlenverwandelt, wobei die Mantisse in Dualdarstellung wegen d >= 1/2 wieder normalisiert ist.Die so erhaltenen Dualzahlen für Mantisse und Exponent werden auf den entsprechenden Bitsdes Wortes gespeichert.

Da für die Mantisse nur endlich viele Bits zur Verfügung stehen, entsteht bei derDarstellung jeder Zahl, deren Mantisse d mehr Stellen als verfügbare Bits hat (insbesonderealso jede irrationale Zahl), notwendigerweise ein Fehler. Ist m die Anzahl der DualsteIlen(Bits) für die Mantisse, so ist der Fehler kleiner als 2-(m-1). Natürlich ist auch der Exponentdurch die Anzahl der dafür reservierten Bits beschränkt. Statt des Exponenten wird meistensdie sogenannte Charakteristik verwendet, die die Speicherung des Vorzeichens desExponenten vermeidet. Die Charakteristik entsteht aus dem Exponenten f durch Additioneiner (maschinenabhängigen) festen Zahl f0, so dass f + f0 >= 0 ist. Stehen etwa zurSpeicherung des Exponenten 7 Bits zur Verfügung, so wählt man f0 = 64, denn der kleinstedarstellbare Exponent ist -64 = - 26. Durch die Anzahl der Bits für die Charakteristik wirdoffensichtlich die größte bzw. kleinste in der Maschine darstellbare Zahl festgelegt.Demgegenüber legt die verfügbare Länge der Mantisse die Genauigkeit der ZahlendarsteIlungfest.

Page 18: Hochschule Fakultät Technologie und Management ...siol/DV1_Kapitel_WS0910/DV1_Kapitel_2.pdf · DV1_Kapitel_2.doc Seite 2-3 von 18 Rüdiger Siol 12.09.2009 16:27 2.2 Zahlendarstellung

Hochschule Fakultät Technologie und Management InformationsverarbeitungRavensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme

DV1_Kapitel_2.doc Seite 2-18 von 18 Rüdiger Siol12.09.2009 16:27

Abschließend sollen noch einige Bemerkungen auf die Problematik derRechenoperationen mit Zahlen in Gleitkommadarstellung hinweisen. Zunächst ist schondurch die Darstellung ein Fehler bedingt, der sich bei der weiteren Verarbeitung imallgemeinen vergrößern wird. Zusätzliche Fehler entstehen direkt durch dieRechenoperationen. Bei der Addition wird häufig im Resultat eine Linksverschiebung desDualpunktes und dadurch eventuell der Verlust einer oder mehrerer Stellen am Ende derMantisse notwendig sein. Auch kann sowohl bei Addition als auch Multiplikation Überlaufeintreten dadurch, dass der Exponent zu groß wird. Die Multiplikation zweier n-stelligerMantissen ergibt entweder 2n oder 2n – 1 Stellen, so dass auch hier "abgeschnitten" werdenmuss , was erneut einen Genauigkeitsverlust bedingt. In vielen Anlagen werden diese Fehlerdurch Einrichtungen zum Runden der Zahlen etwas verkleinert. Besonders fehlerhaft kannsich die Subtraktion zweier beinahe gleich großer Zahlen auswirken.

Ist etwa a1 = 0,32183 * 10-4 und a2 = 0,32151 * 10-4,so ist a1 – a2 = 0,00032 * 10-4.

Dieses Resultat wird aber mit normalisierter Mantisse als

0.32000*10−7 gespeichert. War alsofrüher die 4. oder 5. Stelle der Mantisse mit einem Fehler behaftet, so ist es jetzt die erste oderzweite, was weit größere Auswirkungen im weiteren Verlauf der Rechnung haben kann.Schließlich erwähnen wir, dass in der "Gleitkommaarithmetik" die üblichen Gesetze desRechnens mit reellen Zahlen wie Distributiv- oder Assoziativgesetz nicht erfüllt sind. DennRundungen sind im allgemeinen von der Reihenfolge der durchgeführten Rechenoperationenabhängig. Für die Gleitkommaarithmetik kann man genaue Fehlerabschätzungen durchführen.