Darstellung von ganzen und reellen Zahlen

Dezember 2016

Darstellung einer Zahl am Computer


Die Darstellung (oder Kodierung) einer Zahl ist die Art, sie in binärer Form darzustellen. Die Darstellung von Zahlen am Computer ist nötig, damit dieser sie speichern und damit arbeiten kann. Das Problem liegt nun darin, dass eine mathematische Zahl unendlich sein kann (so groß man will), die Darstellung einer Zahl am Computer aber auf einer festgelegten Bit-Anzahl erfolgen muss. Es geht also darum, zwei Dinge festzulegen : die Bit-Anzahl selbst und die Art und Weise, wie diese am effizientesten genützt werden kann, um die Zahl darzustellen. So wäre es ziemlich unsinnig, ein Zeichen auf 16 Bits zu kodieren (65536 Möglichkeiten), wenn man in der Regel weniger als 256 verwendet.

Darstellung einer natürlichen Zahl


Eine natürliche Zahl ist eine positive ganze Zahl oder Null. Die Entscheidung über die zu verwendende Bit-Anzahl hängt davon ab, welchen Zahlenbereich man verwenden möchte. Um natürliche ganze Zahlen zu kodieren, die zwischen 0 und 255 liegen, genügen 8 Bits (1 Byte), da 28=256. Ganz allgemein : eine Kodierung auf n bits ermöglicht die Darstellung der natürlichen ganzen Zahlen, die zwischen 0 und 2n-1 liegen.

Um eine ganze natürliche Zahl darzustellen, muss man, nachdem die Bitanzahl auf der man kodieren will festgelegt wurde, einfach jedes Bit von rechts nach links in die binäre Zelle einzuordnen, die seinem binärem Zustand entspricht, dann « füllt » man die nicht verwendeten Bits mit Nullen.

Darstellung einer ganzen Zahl


Eine ganze Zahl kann negativ sein. Daher muss man die Zahl so kodieren, dass man wissen kann, ob es sich um eine positive oder eine negative Zahl handelt, außerdem müssen Regeln der Addition gelten. Der Trick besteht darin, eine Kodierung zu verwenden, die man als Zweierkomplement bezeichnet.

  • Eine positive ganze Zahl oder Null wird binär (Basis 2) dargestellt, wie eine natürliche Zahl, der einzige Unterschied besteht darin, dass der stärkste Zustand (das Bit ganz links) für das Zeichen steht. Bei einer positiven ganzen Zahl oder Null steht es auf Null (0 entspricht einem positiven Vorzeichen, 1 einem negativen). Wenn man eine ganze Zahl auf 4 Bits kodiert, ist die größte Zahl 0111 (also 7 in dezimalbasis).

Allgemein gilt : die größte positive ganze Zahl, die auf n kodiert werden kann, entspricht 2n-1-1.
  • Eine negative ganze Zahl durch die Kodierung im Zweierkomplement

Prinzip des Zweierkomplements :
Zur Darstellung einer negativen Zahl.

*
    • Wir nehmen den Gegenwert (positives Äquivalent).
    • Wir stellen ihn in der Basis 2 auf n-1 Bits dar
    • Wir komplementieren jedes Bit (umkehren, also Nulle durch 1 ersetzt und umgekehrt)
    • 1 dazuzählen

Man kann feststellen, dass wenn man die Zahl und ihr Zweierkomplement dazuzählt, 0 erhält.

Betrachten wir nun ein Beispiel dazu :
Man möchte den Wert -5 auf 8 Bits kodieren. Es genügt :
  • 5 in binär zu schreiben : 00000101
  • Mit 1 zu komplementieren: 11111010
  • 1 dazu zu zählen : 11111011
  • Die binäre Darstellung von -5 auf 8 Bits ist 11111011

Anmerkungen:
Das Bit mit dem stärksten Zustand ist 1, das heißt, es handelt sich um eine negative Zahl.
Zählt man 5 und -5 zusammen (00000101 und 11111011) erhält man 0 (man nimmt 1 mit...).

Darstellung einer reellen Zahl


Nun möchten wir eine binäre Kommazahl darstellen (zum Beispiel 101,01 nicht gelesen als hundert eins komma null eins da es eine binäre Zahl ist, sondern als 5,25 in Dezimalform) in der Form 1,XXXXX... * 2n (also in unserem Beispiel1,0101*22). Die Norm IEEE gibt die Art vor, wie eine reelle Zahl kodiert wird
Laut dieser Norm wird die Zahl auf 32 Bits kodiert und hat drei Bestandteile :

  • Das Vorzeichen wird von einem Bit dargestellt, dem Bit mit dem stärkstem Zustand (ganz links).
  • Der Exponent wird auf den 8 folgenden Bits kodiert.
  • Die Mantisse (die Bits, die hinter dem Komma liegen), werden auf den restlichen 23 Bits kodiert.

Die Kodierung erfolgt also in folgender Form :
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
  • Das s steht für das Bit, das sich auf das Vorzeichen bezieht
  • Das e stehen für die Bits, die den Exponenten darstellen
  • Das m stehen für die Bits, die die Mantisse darstellen


Was die Exponenten betrifft, muss man bestimmte Bedingungen einhalten :

  • Der Exponent 00000000 ist verboten
  • der Exponent 11111111 ist verboten. Man verwendet ihn aber, um Fehler zu signalisieren, man nennt diese Nummernkonfiguration NaN, das steht für Not a number
  • Man muss 127 (01111111) zum Exponenten hinzufügen, um eine Konversion von Dezimal nach einer reellen Binärzahl durchruführen. Die möglchen Exponenten gehen also von -254 bis 255.


Die Ausdrucksformel der reelen Zahlen sieht dann wie folgt aus:

(-1)^S * 2^( E - 127 ) * ( 1 + F )



Wobei :

  • S das Vorzeichenbit ist, damit ist ersichtlich, wieso 0 positiv ist ( -1^0=1 ).
  • E der Exponent ist, zu dem man 127 dazuzählen muss, um das kodierte Äquivalent zu erhalten.
  • F für den Bruchteil steht, den einzigen, den man ausdrückt, er wird zu 1 dazugezählt, um die Rechnung durchzuführen.



Betrachten wir diese Kodierung an einem Beispiel :
Sei der zu kodierende Wert 525,5.

  • 525,5 ist positiv, daher steht das 1. Bit auf 0.
  • Die Darstellung in der Basis zwei ist die folgende : 1000001101,1
  • Beim normalisieren kommt man zu : 1,0000011011*2^9
  • Man zählt 127 zum Exponenten dazu, der 9 ist, das ergibt 136, also in der Basis 2 : 10001000
  • Die Mantisse besteht aus dem dezimalen Teil von 525,5 in normalisierter Basis 2, also 0000011011.
  • Da die Mantisse über 23 Bits gehen muss, müssen Nullen angefügt werden, um sie zu vervollständigen :

00000110110000000000000
  • Die Darstellung der Zahl 525,5 in binär nach der IEEE Norm ist also :

0 1000 1000 00000110110000000000000
0100 0100 0000 0011 0110 0000 0000 0000 (4403600 in Hexadezimal)


Hier ein anderes Beispiel mit einer negativen reellen Zahl :
Der zu kodierende Wert sei -0,625.

  • Das Bit s ist 1 weil 0,625 negativ ist
  • 0,625 in der Basis 2 wird folgendermaßen geschrieben : 0,101
  • Man möchte es in der Form 1.01 x 2-1 notieren
  • Deswegen ist der Exponent 1111110, da 127 - 1 = 126 (oder 1111110 in binär)
  • Die Mantisse ist 01000000000000000000000 (nur die Zahlen nach dem Komma werden dargestellt, die gesamte Zahl gleicht immer 1)
  • Die Darstellung der Zahl 0,625 in binär nach der IEEE Norm ist :

1 1111 1110 01000000000000000000000
1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 in Hexadezimal)

Lesen Sie auch :


Representation of real numbers and integers
Representation of real numbers and integers
Representación de números reales y números enteros
Representación de números reales y números enteros
Représentation des nombres entiers et réels
Représentation des nombres entiers et réels
Rappresentazione dei numeri interi e reali
Rappresentazione dei numeri interi e reali
Representação dos números inteiros e reais
Representação dos números inteiros e reais
Das Dokument mit dem Titel « Darstellung von ganzen und reellen Zahlen » aus CCM (de.ccm.net) wird zur Verfügung gestellt unter den Bedingungen der Creative Commons Lizenz. Sie dürfen das Dokument verwenden, verändern sowie Vervielfältigungen dieser Seite erstellen, unter den Bedingungen, die in der vorgenannten Lizenz erwähnt sind und unter der gleichzeitigen Bedingung, dass Sie im Rahmen Ihrer Verwendung, Veränderung oder Vervielfältigung nach außen hin klar und deutlich auf den Urheber (= de.ccm.net) des Dokuments hinweisen.