Einführung Datenverarbeitungssysteme


von Prof. Jürgen Plate

3. Informationsdarstellung in Rechenanlagen

3.1 Grundlagen der Zahlensysteme

Definitionen

3.2 Stellenwertsysteme

Für den Wert einer Zahl Z = an an-1 ... a0 a-1 ... a-m in einem Stellenwertsystem zur Basis B gilt:

wobei für die Ziffern ai gilt: 0 ≤ an < B

Als Basis bezeichnet man die kleinste, nicht mehr durch eine Ziffer darstellbare Zahl. Am geläufigsten ist uns das Dezimalsystem mit der Basis 10 Die Festlegung ist rein willkürlich und vermutlich auf die Zahl der Finger beider menschlicher Hände zurückzuführen. Zahlzeichen der Azteken (Basis 20, Ziffernwertsystem), Zahlzeichen der Inkas (Basis 10, Stellenwertsystem).

Die verkürzte Schreibweise durch Aneinanderreihung von Ziffern ist eine abkürzende Schreibweise der Summenformel. Damit kann jede positive und negative reelle Zahl dargestellt werden, indem jede Stelle der Ziffernfolge mit einer Zehnerpotenz gewichtet wird.

Ganze Zahlen:

2018 = 2·103 + 0·102 + 1·101 + 8·100

allgemein:

an an-1 ... a0 a-1 ... a-m = an·10n + an-1·10n-1 + ... + a0·100 + a-1·10-1 + ... + a-m·10-m

Echter Dezimalbruch:

0,328 = 0 + 3·10-1 + 2·10-2 + 8·10-3

allgemein:

0,a-1 ... a-m = a-1·10-1 + ... + a-m·10-m

Dezimalzahlen:

Radixschreibweise:   Z = an an-1 ... a0 a-1 ... a-m

Potenzschreibweise:   Z = an·10n + an-1·10n-1 + ... + a0·100 + a-1·10-1 + ... + a-m·10-m

Potenz-Summen-Schreibweise:  

Prinzipiell kann jede ganze Zahl größer 1 Basis B eines Stellenwertsystems sein. In der Praxis finden aber nur wenige Werte Verwendung.

Dualzahlen

Für das Dualsystem ist die Basis B = 2 und a aus {0,1}, z. B. Z = 1010.1dual = 10.5dez. Dieses Zahlensystem ist speziell für die Digitaltechnik von Bedeutung, da nur zwei Zustände eine physikalischen Größe benötigt werden (Spannung, Strom, Frequenz, Magnetisierungsrichtung).
Nachteil ist die unübersichtliche, monotone Ziffernfolge bei der Darstellung langer Dualzahlen. Daher werden beim Umgang mit EDV-Anlagen zwei andere Zahlensysteme verwendet:

Oktalzahlen

Zusammenfassung von 3 Dualstellen zu einer Oktalstelle (bessere Lesbarkeit, kürzer zu schreiben, leicht umzurechnen) Oktalsystem: Basis B = 8 und a ist aus {0,1,2,3,4,5,6,7}, z. B. 101001dual = 51oktal.
Bei der Eingabe von Oktalzahlen müssen diese - zur Unterscheidung von Dezimalzahlen - gekennzeichnet werden. Dies geschieht durch Hinzustellen der Basis, z. B.: 1257(8) Häufig (besonders bei Programmiersprachen) geschieht dies auch durch Voranstellen von '@' oder Anfügen von 'O', 'Q', 'C' z. B.: @154 154O 154Q 154C (bei C-Compilern auch durch führende Null).

Sedezimalzahlen (= Hexadezimalzahlen)

Zusammenfassung von 4 Dualstellen ergibt eine Sedezimalstelle Sedezimalsystem: Basis B = 16 und a aus {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, z. B. 101001dual = 29sedezimal. Übliche Darstellung der eigentlich binären Information in einem Rechner (Kurzschreibweise binärer Info). Kennzeichnung bei der Programmierung durch Voranstellen von '$', '0x' oder Anfügen von 'H' (für "hexadezimal") z. B.: $FFC2 FFC2H 0xFFC2. Gelegentlich wird eine führende Null verwendet, wenn die Zahl mit einem Buchstaben beginnt.

Weitere, manchmal verwendete Zahlensysteme, sind das Ternärsystem (B = 3) und das Quinärsystem (B = 5). Es stellt sich nun die Frage, wie man Zahlen von einem Zahlensystem in ein anderes umrechnen kann.

3.3 Umrechnung zwischen den Stellenwertsystemen

Umwandlung Dezimalsystem anderes Stellenwertsystem

Die Darstellung als Potenzreihe kann als Polynom zur Basis B aufgefasst werden.

Z = an·Bn + an-1·Bn-1 + ... + a0·B0 + a-1·B-1 + ... + a-m·B-m

Eine andere Form der Darstellung ist das Hornerschema (hier nur für den ganzzahligen Teil):

Bei der Umwandlung ganzer Zahlen gibt es nur positive Potenzen des Basis B. Bei fortgesetzter Division durch die Basis B' des gesuchten Zahlensystems fallen die gesuchten Koeffizienten als Reste der ganzzahligen Division an. Die Division wird fortgesetzt, bis das Divisionsergebnis 0 geworden ist. Die Divisionsreste sind die Ziffern des Zielsystems in aufsteigender Reihenfolge (1. Rest = niederwertigste Ziffer, letzter Rest = höchstwertige Ziffer).

Dezimal-Dual-Wandlung ganzer Zahlen (Basis B = 2)

  1. Dualzahl auf 0 setzen. Wir führen einen Wert I ein, der die gerade bearbeitete Stelle der erzeugten Dualzahl enthält. I wird auf 1 gesetzt.
  2. I-te Stelle der Dualzahl := Dezimalzahl mod 2. (Der Operator "mod" bezeichnet den Rest der Division)
  3. Dividiere die Dezimalzahl durch 2. Dieser Wert ergibt die neue Dezimalzahl für die Berechnung der nächsten Stelle.
  4. Erhöhe den Wert von I um 1. Wenn die Dezimalzahl > 0 ist, fahre fort bei Schritt 2.

Dezimal-Dual-Wandlung echtgebrochener Zahlen (Basis B = 2)

Hornerschema für den gebrochenen Teil:

Bei der Umwandlung von echten Brüchen wird nach dem gleichen Schema verfahren, nur wird hier fortgesetzt mit der Basis des Zielsystems multipliziert. Die ganzzahligen Anteile der einzelnen Multiplikationsschritte ergeben die Koeffizienten des Zielsystems. Die Rechnung ist zuende, wenn der gebrochene Anteil des Multiplikationsergebnisses 0 wird. Die ganzzahligen Anteile der Multiplikationen werden dann in absteigender Reihenfolge aufgeschrieben (1. Anteil = höchste Stelle).

Vorsicht: Ein endlicher Bruch in einem Stellenwertsystem ist nicht immer auch ein endlicher Bruch in einem anderen.

  1. Dualzahl auf 0 setzen. Wir führen einen Wert I ein, der die gerade bearbeitete Stelle der erzeugten Dualzahl enthält. I wird auf 1 gesetzt.
  2. Die Dezimalzahl wird mit der Basis 2 multipliziert. Die I-te Stelle der Dualzahl ergibt sich aus dem ganzzahligen Anteil der Dezimalzahl (Vorkommastelle).
  3. Man nehme den gebrochenen Anteil der Dezimalzahl (Nachkommastellen) für die weitere Berechnungen.
  4. Man erhöhe den Wert von I um 1. Wenn die Dezimalzahl > 0 ist, fahre fort bei Schritt 2.

Umwandlung anderes Stellenwertsystem Dezimalsystem

Der offensichtliche Weg ergibt sich aus der Definition einer Zahl im Stellenwertsystem:

Z = an·Bn + an-1·Bn-1 + ... + a0·B0 + a-1·B-1 + ... + a-m·B-m

Die Umwandlung erfolgt durch Auswertung der Summe, wobei die Koeffizienten und die Potenzen der Basis B im Dezimalsystem dargestellt werden.

Beispiel: Umwandlung aus dem Dualsystem

Z = 101,11(2) = ??(10)

Z = 1·22 + 0·21 + 1·20 + 1·2-1 + 1·2-2

Z = 4 + 0 + 1 + 1/2 + 1/4 = 5,75

Eine andere Möglichkeit ist wieder die Anwendung des Hornerschemas. Das oben dargestellte Verfahren der Dezimal-Dual-Umwandlung wird einfach umgekehrt. Beginnend bei der höchstwertigen Ziffer wird bei ganzen Zahlen mit der Basis des Ausgangssystems (dargestellt im Zielsystem) multipliziert und zur nachfolgenden Stelle addiert. Dies wird bis zur niederwertigsten Ziffer fortgesetzt. Das letzte Ergebnis ist die Zahl im Zielsystem.

Dual-Dezimal-Umwandlung, ganzzahlig

  1. Setze die Dezimalzahl auf 0. Beginne bei der höchstwertigen Stelle n der Dualzahl. Wir führen einen Wert I ein, der die gerade bearbeitete Stelle der erzeugten Dualzahl enthält. I wird auf n gesetzt.
  2. Multipliziere die Dezimalzahl mit 2 und addiere die I-te Stelle der Dualzahl zur Dezimalzahl.
  3. Wiederhole Schritt 2 solange, bis alle Stellen der Dualzahl verarbeitet sind.

Beispiel: 11011101(2) = ??(10)

Beispiel: 7C2(16) = ??(10)

Dual-Dezimal-Umwandlung, echter Bruch

Bei echten Brüchen wird fortgesetzt durch die Basis des Ausgangssystems (dargestellt im Zielsystem) dividiert. Die Ziffern werden von der niederwertigsten Stelle aus abgearbeitet (rechts nach links) Abbau zum Komma hin.
  1. Man setze die Dezimalzahl auf 0. Man beginne bei der niederwertigen Stelle n der Dualzahl. Wir führen einen Wert I ein, der die gerade bearbeitete Stelle der erzeugten Dualzahl enthält. I wird auf n gesetzt.
  2. Man addiere die I-te Stelle der Dualzahl zur Dezimalzahl und dividiere das Ergebnis durch 2.
  3. Man wiederhole Schritt 2 solange, bis alle Stellen der Dualzahl verarbeitet sind.

Beispiel: 0,1011(2) = ??(10)

Umwandlung Dual - Oktal - Hexadezimal

Die behandelten Umwandlungsroutinen können hier genauso verwendet werden. Da die Rechenoperationen immer im Zielsystem durchgeführt werden, ist dies für uns zumindest ungewohnt. Es gibt aber ein einfacheres Verfahren, das über das Dualsystem führt. Alle Basen sind Zweierpotenzen:

Die Umwandlung erfolgt in zwei Schritten:
  1. Umwandlung in das Dualsystem. Jede Stelle wird in 3 (oktal) oder 4 (hexadezimal) Dualstellen umgewandelt.
  2. 3 bzw. 4 Dualstellen werden zusammengefasst und in eine Oktal- bzw. Hexadezimalstelle gewandelt. Die Dualzahl ist gegebenenfalls vorher auf volle 3er- oder 4er-Gruppen zu ergänzen (0!). Die Umwandlung erfolgt immer vom Komma weg (ganzzahliger Anteil nach links, gebrochener Anteil nach rechts).
Beispiel: 237.54(8) = ??(16)

3.4. Arithmetik im Dualsystem

Grundsätzlich wird im Dualsystem nach genau denselben Regeln gerechnet, wie im Dezimalsystem. Lediglich durch das ungewohnte Zahlensystem erscheint und die Rechner schwieriger zu sein.

Arithmetische Grundoperationen

Für die Addition zweier einstelliger Dualzahlen S = a + b gilt:

a b S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Bei der letzten Operation entsteht ein Übertrag auf die folgende Stelle (Carry). Das Ergebnis ist nicht mehr einstellig darstellbar. Die Addition mehrstelliger Dualzahlen wird wie im Dezimalsystem stellenweise durchgeführt (Übertrag berücksichtigen).

Beispiel:

Für die Subtraktion einstelliger Dualzahlen D = a - b gilt:

a b D B
0 0 0 0
0 1 1 -1
1 0 1 0
1 1 0 0

Bei der Operation 0 - 1 ist von der nächsthöheren Stelle zu "borgen" (Borrow). Die Subtraktion mehrstelliger Zahlen erfolgt wieder stellenweise.

Darstellung negativer Zahlen

Ein sehr einfacher Ansatz wäre es, ein Bit als Vorzeichen definieren und den Betrag des Zahlenwerts in den restlichen Bits des Wortes darstellen Betrags-Vorzeichen-Form. Bei der technischen Realisierung gibt es jedoch einige Nachteile. In der Datenverarbeitung ist das Subtraktionsverfahren mit einem "Borrow"-Signal von der nächsthöheren Stelle nicht gut durchführbar. Daher führt man die Subtraktion auf die Addition einer negativen Zahl zurück. Die Darstellung negativer Zahlen erfolgt durch die sogenannte Komplementdarstellung.

Rückführung der Subtraktion auf die Addition:

, wobei das Komplement von b ist.

Es stellt sich nun sofort die Frage, wie man das Komplement einer Zahl erhält. Dazu wird die Gleichung erweitert:

a - b = a + (K - b) - K), wobei K die "Komplementärzahl" ist.

Beispiel:

Die Subtraktion von K zum Schluss kann man recht einfach durch Weglassen der vordersten Stelle beim Ergebnis realisieren. K ist im Prinzip beliebig wählbar, jedoch würde für K = 1000 eine Zahl in Komplementdarstellung nicht von einer natürlichen Zahl unterscheidbar. Wir treffen daher zwei Vereinbarungen:

  1. Für alle Rechnungen wird eine maximale Stellenzahl n festgelegt.
  2. Für K wird (im Dezimalsystem) 10n+1 gewählt. Dann kann man nämlich eine Vorzeichenstelle verwenden. Wir vereinbaren: Die Vorzeichenstelle dient zwar als Indikator für das Vorzeichen, ist jedoch Bestandteil der Zahl!
Beispiele (Komplement mit VZ-Stelle):

Nun ist also auch ein negatives Ergebnis erkennbar und der Betrag (bzw. das Endergebnis) kann durch nochmaliges Komplementieren ermittelt werden. Interessant wird diese Methode jedoch erst im Dualsystem.

Komplementbildung im Dualsystem

Zunächst eine allgemeine Definition. Es sind zwei Arten von Komplementen gebräuchlich. X sei eine n-stellige positive Zahl im Zahlensystem zur Basis B, dann ist: Auch hier gilt: Werden alle n Stellen für den Zahlenwert benutzt, dann ist nicht unterscheidbar, ob eine pos. Zahl oder das Komplement dargestellt wird (n+1)-te Stelle hat VZ-Funktion.

Die Bildung des Einerkomplements geschieht durch Invertieren jeder einzelnen Stellen (sehr einfach). Es gibt jedoch zwei "Nullen", beispielsweise für n = 4: 0000 = +0, 1111 = -0. Vor allem bei EDV-Systemen wird deshalb das Zweierkomplement verwendet. Die Bildung kann auf zwei Wegen erfolgen:

  1. Einerkomplement bilden und dann 1 addieren:
          0110 1100    X
    
          1001 0011    1-Komplement
        +         1    1 addieren
    
        = 1001 0100    2-Komplement
    
  2. Direkt: Übernahme aller Stellen von rechts bis zur ersten 1 einschließlich, alle weiteren Stellen invertieren:

          0110 1100    X
          1001 0100    übernehmen/komplementieren
    
        = 1001 0100    2-Komplement
    
    Wertebereich bei n+1 Stellen (n Ziffern und VZ): -2n bis +2n-1

    Beispiel: 3 Stellen und Vorzeichen

                    1000    -8
    0111    +7      1001    -7
    0110    +6      1010    -6
    0101    +5      1011    -5
    0100    +4      1100    -4
    0011    +3      1101    -3
    0010    +2      1110    -2
    0001    +1      1111    -1
    0000     0
    
    Frage: Warim nicht -2n bis +2n? Antwort: Der Wert 2n wäre 1000, die Darstellung passt nicht mehr in 3 Stellen mit Vorzeichen Verwechselung mit -8!

    Die Gesamtheit der so dargestellten Zahlen nennt man konegative Zahlen (gesprochen "konegativ", kommt von "Komplement-negativ"). Der Vorteil der Komplementdarstellung von negativen Zahlen liegt in der Ausführbarkeit der Subtraktion als Addition.

    B-Komplement:
    Y - X = Y - (X + Bn) - Bn = Y + X - Bn
    Bn = 1000...000 (n Nullen)

    Beispiele für die Komplement-Bildung

    (Basis = 2, Stellenzahl n = 4 3 Ziffern und VZ)
    Dez.  Dual  1-kompl.  2-kompl.
     0    0000    1111      0000
     2    0010    1101      1110
     5    0101    1010      1011
     7    0111    1000      1001
    

    Bei der Subtraktion wird das Komplement addiert und (bei pos. Ergebnis) der Übertrag in die n+1-te Stelle weggelassen. Bei negativem Ergebnis: Komplementdarstellung. Das Carry-Bit (Übertrag) wird gesetzt, wenn in der höchstwertigen Stelle ein Übertrag auftritt.

    Wemm man bei dem oben angegebenen Zahlenbereich 5 + 7 addiert, ergibt sich folgende Rechnung:

              0101
              0111
              ----
              1100
    
    Das Ergebnis 1100 ist eindeutig negativ, nämlich -4. Es liegt nicht im darstellbaren Zahlenbereich! Untersucht man die verschiedenen Möglichkeiten unf fasst man die Erkenntnisse zusammen, ergibt sich folgende Tabelle:

    Vorzeichen
    Operanden
    Vorzeichen
    Ergebnis
    Bereichs-
    überschr.
    beide
    positiv
    positiv
    negativ
    nein
    ja
    positiv
    negativ
    positiv
    negativ
    nein
    nein
    beide
    negativ
    positiv
    negativ
    ja
    nein

    Merksatz: Wenn beide Operanden das gleiche Vorzeichen haben und das Ergebnis ein davon abweichendes Vorzeichen, dann gab es eine Bereichsüberschreitung (Overflow).

    Die bisher gesammelten Erkenntnisse führen dann zur Rechenvorschrift für die Subtraktion durch Komplementaddition (B-Komplement):

    1. Stellenzahl von X und Y angleichen
    2. B-Komplement Xk des Subtrahenden X bilden
    3. Y und Xk addieren
    4. Eventuellen Übertrag streichen
    5. Ist VZ-Stelle von Y = VZ-Stelle von X und unterscheidet sie sich von der VZ-Stelle des Ergebnisses, dann ist ein Zahlenbereichsüberlauf aufgetreten Fehlermeldung.
    6. Ist die VZ-Stelle des Ergebnisses = 0, dann ist das Ergebnis positiv, sonst ist das Ergebnis negativ (in B-Komplement-Darstellung). Will man in diesem Fall den Betrag des Ergebnisses feststellen, muss man das Ergebnis komplementieren.

    Multiplikation

    Bei Multiplikation und Division werden selten konegative Zahlen verwendet. Es werden vielmehr die Beträge multipliziert und dann das Vorzeichen betrachtet. Die duale Multiplikation erfolgt prinzipiell nach den selben Regeln, wie wir sie in der Schule für das Dezimalsystem gelernt haben: Der Multiplikand wird stellenweise mit dem Multiplikator malgenommen und die so erhaltenen Teilergebnisse stellenrichtig aufaddiert. Für Dualzahlen ist die Bestimmung eines Teilergebnisses besonders einfach. Da an der Multiplikatorstelle nur die Werte 0 oder 1 stehen können, ist bei einer 0 das Teilergebnis auch 0, im Fall der 1 ist das Teilergebnis identisch mit dem Multiplikanden.

    Beispiel: 23 * 12 = 276

    Das Ergebnis zweier n-stelliger Dualzahlen hat nahezu die doppelte Stellenzahl, nämlich 2n - 1.

    Die Multiplikation von Dualzahlen kann durch Addition und Bitverschiebung vereinfacht werden ( Verschieben um eine Bitposition entspricht Multiplikation mit 2 (links) oder Division durch 2 (rechts). Alle Rechenanlagen besitzen Bit-Verschiebe-Befehle. Angefangen bei niederwertigsten Bit des Multiplikators wird fortlaufend der Multiplikand zum Ergebnisregister (das zu Beginn auf Null gesetzt wurde) addiert, wenn das entsprechende Bit des Multiplikators den Wert 1 besitzt und dann um eine Position nach links verschoben. Die stellenrichtige Addition wird also nur in Teilschritte zerlegt.

    Beispiel: 9 * 13 = 117

    Algorithmus für X * Y:

    1. Setze Ergebnisspeicher auf 0
    2. wenn die letzte Stelle von Y = 1 ist, addiere X zum Ergebnisspeicher
    3. Verschiebe Y um eine Stelle nach rechts (die in Schritt 1. behandelte Stelle wird "hinausgeschoben", sie verschwindet also).
    4. Verschiebe X um eine Stelle nach links (entspricht Multiplikation mit 2 stellenrichtige Addition)
    5. Wenn Y nicht 0 ist, gehe zu Schritt 2.
    Die 5. Anweisung hat zur Folge, dass die Multiplikation beendet wird, sobald nichts mehr zu addieren ist. Bei einer Wortbreite von n, ist die Multiplikation auf jeden Fall nach n Schritten zuende.

    Division

    Auch bei der Division X/Y wird nur Addition, Subtraktion (= Komplementaddition) und das Multiplizieren/Dividieren mit 2 benötigt. Zunächst wird Y in einem Hilfsregister W gespeichert und W dann solange nach links verschoben (also verdoppelt), bis W > X ist. Der Divisionsrest R erhält den Wert von X. Danach wird fortlaufend W durch 2 dividiert und der Quotient mit 2 multipliziert, bis W = X ist. Wenn dabei W kleiner als der Rest wird, dann wird W vom Rest abgezogen und Q erhöht (Korrektur).

    Beispiel im Dezimalsystem: 651 / 5

    Algorithmus für X / Y:

    1. Setze Quotient auf 0. Setze Rest = X. Setze Zwischenspeicher W = Y.
    2. Verdopple W solange, bis W > Rest ("wie oft geht Y in X")
    3. Wenn W = Y ist, dann ist die Division zuende.
    4. Verdopple den Quotientenwert (Q := Q * 2). Halbiere W (W = W / 2).
    5. Wenn W <= Rest dann subtrahiere W vom Rest und Erhöhe den Quotienten um 1.
    6. Fahre fort bei Schritt 3.
    Der Trick hinter diesem Algorithmus ist die Gleichung
           X = Quotient * W + Rest
    
    Die Gleichung ist nach jedem Durchlauf der Rechenschritte 3. bis 6. erfüllt.

    Beispiel:

    Ergebnis: Q(uotient) = 100, R(est) = 10

    3.5 Festpunkt- und Gleitpunktdarstellung

    Festpunktzahlen

    Die bisher betrachtete Schreibweise gebrochener Zahlen wird Festpunktdarstellung (Festkommadarstellung) genannt. Bei einer vorgegebenen Gesamtstellenzahl steht der Radixpunkt immer an der gleichen Stelle. Wie weit die erste von Null verschiedenen Ziffer vom Punkt entfernt steht, hängt von der Größe der Zahl ab, z. B. Darstellung mit Vorzeichen, 8 Stellen vor dem Komma und 3 Stellen dahinter (dezimal).

    Die Zahl wird mit führenden Nullen dargestellt und gegebenenfalls gerundet. Im obigen Beispiel reicht der darstellbare Bereich von -99999999,999 bis +99999999,999. Der Nachteil liegt im begrenzten Zahlenbereich bei sehr kleinen Zahlen gehen durch die Rundung Stellen verloren (0,0009 würde z. B. zu 0), sehr große Zahlen sind nicht mehr darstellbar.

    Gleitpunktzahlen

    Gebrochene Zahlen (reelle Zahlen) werden i.a. in Gleitpunktdarstellung (Gleikomma-Darst.) bearbeitet. Gleitpunktzahlen, floating point numbers). Wegen der endlichen Stellenzahl können reelle Zahlen nur unvollkommen dargestellt werden, sie repräsentieren nur einzelne Punkte auf der reellen Zahlengerade Rundungsfehler.

    Bei der Gleitpunktdarstellung wird die Zahl so gespeichert, daß der Radixpunkt immer zur ersten von Null verschiedenen Ziffer gleitet. Dies erreicht man durch Abspalten einer entsprechenden Potenz der Basis:

    Z = M * BE, n ganzzahlig
    M = 0.xxxxxxx..., 1/B <= M < 1

    Da die Basis bekannt ist, kann die Zahl durch die Mantisse M und den Exponenten E dargestellt werden. halblogarithmische Darstellung normalisierte Darstellung. Die Anpassung der GP-Zahl an die angegebene Darstellungsform wird als "Normalisieren" bezeichnet.

    Beispiel:

    Z = 42.5456 0.425456 * 102 M = 425456, E = 2

    Man bezeichnet E als Exponent (bzw. Charakteristik) Größenordnung der Zahl und M als Mantisse Angabe der gültigen Zifferndarstellungen

    Die Art der Darstellung von Mantisse und Exponent ist recht unterschiedlich. Für Mantisse und Exponent wird jeweils eine feste Stellenzahl vorgegeben, in der auch das Vorzeichen von Mantisse und Exponent untergebracht werden muss. Am üblichsten ist Betrags-Vorzeichen-Darstellung der Mantisse und Exponentendarstellung mit verschobenem Wertebereich (Charakteristik) so, dass der Wert der Charakteristik immer ³ 0 ist (so wird ein zusätzliches Bit für das Vorzeichen des Exponenten eingespart). Sie stellt also eine einfache Verschiebung des Wertebereichs dar und hat keinen Einfluss auf die Berechnung.

    Beispiel:

         Wertebereich Exponent:      -128 ... 127
         Charakteristik (C = E + V):    0 ... 255    (V = 128)
    

    Umwandlung einer Dezimalzahl in eine Gleitpunkt-Dualzahl:

    1. Methode: Beispiel: (8 Stellen Mantisse, 4 Stellen Exponent, V = 8)
    27.75 dez. = 11011.11 dual  M = 0.1101111, E = 0101
                                M = 0.1101111, C = 1101
    
    2. Methode: Beispiel: (8 Stellen Mantisse, 4 Stellen Exponent, V = 8)
    27.75 dez.  M = 0.8671875, E = 5
                M = 0.1101111, E = 0101
                M = 0.1101111, C = 1101
    

    Eigenschaften von Gleitpunktzahlen:

    Gleitpunkt-Arithmetik

    Auch hier gilt wieder, dass die Rechenverfahren verwendet werden, die wir in der Schule gelernt haben - eben nur angewendet auf Dualzahlen.

    Addition und Subtraktion:

    1. Angleichen der Exponenten der beiden Operanden (Verschieben der Mantisse des Operanden mit kleineren Exponenten)
    2. Addition/Subtraktion der Mantissen
    3. Normalisieren des Ergebnisses

    Multiplikation und Division:

    1. Multiplikation/ Division der Mantissen
    2. Addition/ Subtraktion der Exponenten
    3. Normalisieren des Ergebnisses

    Beispiel für Gleitpunkt-Addition im Dualsystem:
    (6 Stellen Mantisse, 4 Stellen Charakteristik)

    Assoziativität und Distributivität gilt nicht mehr

    Durch die begrenzte Stellenzahl entstehen u. U. Rundungsfehler beim Angleichen der Operanden (Rundungsfehler). Das Assoziativgesetz und das Distributivgesetz gelten nicht mehr.
               a + (b + c) ≠ (a + b) + c
               a * (b * c) ≠ (a * b) * c
               (a + b) * c ≠ (a * c) + (b * c)
    

    Einfaches Beispiel:

    Beim Angleichen geht die letzte Stelle des ersten Summanden verloren.

    Beispiel für Gleitpunkt-Formate

    Bei EDV-Anlagen mit großer Maschinenwortlänge werden Mantisse und Exponent meist in einem Maschinenwort untergebracht. Die GK-Arithmetik wird meist von der Hardware unterstützt. Bei Mikrocomputern ist die GK-Arithmetik meist durch Software realisiert (Ausnahme: spezielle GK-Koprozessoren). Häufig wird neben einen Format für einfache Genauigkeit ein weiteres Format für erweiterte Genauigkeit angeboten.

    Beispiel: DIN IEC 47B für Mikroprozessoren

    3.6 Informationsdarstellung in Rechenanlagen

    Integer-Zahlen

    Integerzahlen (ganze Zahlen) werden in der Regel als konegative Dualzahlen dargestellt. Je nach Datenverarbeitungssystem (DVS) beträgt die Wortbreite 8, 16, 32, ... Bit.

    Real-Zahlen

    Real-Zahlen können, bedingt durch die Beschränkung auf endliche Stellenzahl, nur unvollkommen dargestellt werden Folge sind Rundungsfehler bei der Arithmetik numerische Mathematik. Die Darstellung erfolgt in Form von Gleitpunktzahlen (siehe oben) oder als BCD-Gleitpunktzahlen (siehe unten).

    BCD - Zahlen

    Für einige Anwendungen ist es sinnvoll und/ oder notwendig mit Dezimalzahlen zu arbeiten (z.B. kaufmännische Anwendungen, exakte Rechnung mit vorgegebener Stellenzahl). Die Dezimalzahlen werden dann als BCD-Zahlen dargestellt. Es gibt zwei Möglichkeiten der Darstellung: Die BCD-Arithmetik ist komplizierter als rein duales Rechnen. Intern wird jedoch immer dual gerechnet. Die duale Addition zweier Tetraden (8421-BCD) erfordert immer dann eine Korrektur, wenn das Ergebnis > 9 ist. Zum Beispiel:

    Einige Rechner kennen Befehle zur BCD-Arithmetik (automatische Korrekturaddition).

    BCD-Gleitkommadarstellung:

    Zeichen

    Jedes Zeichen wird durch ein Codewort eines festgelegten Codes verschlüsselt. Die Wahl des Codes ist beliebig. Bei DVS meist ASCII (American Standard Code for Information Interchange), z. T. erweitert auf den vollen Wertebereich eines Byte (z. B. IBM-PC). Andere verwendete Zeichencodes: Zeichenketten(Strings) werden durch aufeinanderfolgende Zeichen dargestellt. Je nach Wortlänge des DV-Systems in gepackter oder ungepackter Darstellung (z. B. 8 Zeichen in einem 64-Bit-Speicherwort). Es gibt zwei Formen der Speicherung in aufsteigender Reihenfolge im Speicher des DV-Systems:

    ASCII Tabelle (sedezimal)

    | 00 nul| 01 soh| 02 stx| 03 etx| 04 eot| 05 enq| 06 ack| 07 bel|
    | 08 bs | 09 ht | 0a nl | 0b vt | 0c np | 0d cr | 0e so | 0f si |
    | 10 dle| 11 dc1| 12 dc2| 13 dc3| 14 dc4| 15 nak| 16 syn| 17 etb|
    | 18 can| 19 em | 1a sub| 1b esc| 1c fs | 1d gs | 1e rs | 1f us |
    | 20 sp | 21  ! | 22  " | 23  # | 24  $ | 25  % | 26  & | 27  ' |
    | 28  ( | 29  ) | 2a  * | 2b  + | 2c  , | 2d  - | 2e  . | 2f  / |
    | 30  0 | 31  1 | 32  2 | 33  3 | 34  4 | 35  5 | 36  6 | 37  7 |
    | 38  8 | 39  9 | 3a  : | 3b  ; | 3c  < | 3d  = | 3e  > | 3f  ? |
    | 40  @ | 41  A | 42  B | 43  C | 44  D | 45  E | 46  F | 47  G |
    | 48  H | 49  I | 4a  J | 4b  K | 4c  L | 4d  M | 4e  N | 4f  O |
    | 50  P | 51  Q | 52  R | 53  S | 54  T | 55  U | 56  V | 57  W |
    | 58  X | 59  Y | 5a  Z | 5b  [ | 5c  \ | 5d  ] | 5e  ^ | 5f  _ |
    | 60  ` | 61  a | 62  b | 63  c | 64  d | 65  e | 66  f | 67  g |
    | 68  h | 69  i | 6a  j | 6b  k | 6c  l | 6d  m | 6e  n | 6f  o |
    | 70  p | 71  q | 72  r | 73  s | 74  t | 75  u | 76  v | 77  w |
    | 78  x | 79  y | 7a  z | 7b  { | 7c  | | 7d  } | 7e  ~ | 7f del|
    

    Latin1-Tabelle

    128 144 160   176 192 208 224 240
    129 145 ‘ 161 177 193 209 225 241
    130 ‚ 146 ’ 162 178 194 210 226 242
    131 ƒ 147 “ 163 179 195 211 227 243
    132 „ 148 ” 164 180 196 212 228 244
    133 … 149 • 165 181 197 213 229 245
    134 † 150 – 166 182 198 214 230 246
    135 ‡ 151 — 167 183 199 215 231 247
    136 ˆ 152 ˜ 168 184 200 216 232 248
    137 ‰ 153 ™ 169 185 201 217 233 249
    138 Š 154 š 170 186 202 218 234 250
    139 ‹ 155 › 171 187 203 219 235 251
    140 Œ 156 œ 172 188 204 220 236 252
    141 157 173 189 205 221 237 253
    142 158 174 190 206 222 238 254
    143 159 Ÿ 175 191 207 223 239 255

    Logische Werte

    Die Zuordnung zwischen internen Binärwerten kann im Prinzip beliebig vorgenommen werden (über Software). Häufig gilt: "FALSE" = "0", "TRUE" = "1". Die DVS gestatten i.a. logische Operationen (AND, OR, XOR, NEG), die aber

    Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt


    Die HTML-Fassung entstand unter Mitwirkung von Volker Arndt
    Copyright © FH München, FB 04, Prof. Jürgen Plate