Darstellung von ganzen und reellen Zahlen

November 2017
Der Computer kennt im Prinzip nur die Zahlen 1 und 0. Um alle möglichen anderen Zahlen darstellen zu können, müssen diese in den für den Computer verständlichen Binärcode umgewandelt werden.


Darstellung einer Zahl am Computer

Die Darstellung oder Kodierung einer Zahl bedeutet, sie in binäre Form umzuwandeln. 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 groß sein kann, die Darstellung einer Zahl am Computer aber mit einer festgelegten Anzahl von Bits erfolgen muss. Es geht also darum, zwei Dinge festzulegen: die verfügbare Bit-Anzahl selbst und die Art und Weise, wie diese am effizientesten genützt werden kann, um die Zahl darzustellen. Es wäre zum Beispiel ziemlich unsinnig, ein Zeichen auf 16 Bits zu kodieren (das entspricht 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 die 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. Somit ermöglicht eine Kodierung auf n Bits 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 Bit-Anzahl, auf der man kodieren will, festgelegt wurde - einfach jedes Bit von rechts nach links in die binäre Zelle einordnen, die seinem binären Zustand entspricht. Danach "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 die Null werden binär (Basis 2) dargestellt wie eine natürliche Zahl - mit dem Unterschied, dass der stärkste Zustand (das Bit ganz links) für das Zeichen steht. Bei einer positiven ganzen Zahl oder der 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 auf Dezimalbasis).

Allgemein gilt: Die größte positive ganze Zahl, die auf n kodiert werden kann, entspricht 2n-1-1.

Eine negative ganze Zahl wird durch die Kodierung im Zweierkomplement dargestellt.

Prinzip des Zweierkomplements zur Darstellung einer negativen Zahl

Wir nehmen den Gegenwert (positives Äquivalent). Wir stellen ihn auf der Basis 2 durch n-1 Bits dar. Wir komplementieren (umkehren) jedes Bit, das heißt alle Nullen werden durch 1 ersetzt und umgekehrt). Wir zählen 1 dazu. Man kann feststellen, dass wenn man die Zahl und ihr Zweierkomplement dazuzählt, 0 erhält.


Beispiel:

Man möchte den Wert -5 auf 8 Bits kodieren.

Dau schreibt man die 5 zunächst binär: 00000101.
Man komplementiert mit 1: 11111010.
Man zählt 1 dazu: 11111011.

Die binäre Darstellung von -5 auf 8 Bits ist 11111011.


Hinweis: 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 Kommazahl binär darstellen in der Form 1,XXXXX... * 2n. Nehmen wir zum Beispiel 101,01, nicht gelesen als einhundert eins Komma null eins, da es eine binäre Zahl ist, sondern als 5,25 in Dezimalform. Es ergibt sich 1,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

Der Buchstabe s steht für das Bit, das sich auf das Vorzeichen bezieht.
Die Buchstaben e stehen für die Bits, die den Exponenten darstellen.
Die Buchstaben m stehen für die Bits, die die Mantisse darstellen.

Was die Exponenten betrifft, müssen bestimmte Bedingungen eingehalten werden:

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 einer Dezimal- in eine reelle Binärzahl durchzuführen. Die möglichen Exponenten gehen also von -254 bis 255.

Die Ausdrucksformel der rellen Zahlen sieht dann wie folgt aus:

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


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

Beispiel 1 mit einer positiven reellen Zahl:

Der zu kodierende Wert ist 525,5.

525,5 ist positiv, daher steht das erste Bit auf 0.

Die Darstellung auf der Basis 2 ist die folgende: 1000001101,1.

Beim Normalisieren kommt man auf: 1,0000011011*2^9.

Man zählt 127 zum Exponenten dazu, der 9 ist, das ergibt 136, also auf der Basis 2: 10001000.

Die Mantisse besteht aus dem dezimalen Teil von 525,5 auf normalisierter Basis 2, also: 0000011011.

Da die Mantisse 23 Bits lang sein 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)


Beispiel 2 mit einer negativen reellen Zahl:

Der zu kodierende Wert ist -0,625.

Das erste Bit ist 1 weil 0,625 negativ ist.

0,625 auf 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)


Foto: © Pixabay.

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
Letztes Update am 27. Oktober 2017 07:54 von SilkeCCM.
Das Dokument mit dem Titel "Darstellung von ganzen und reellen Zahlen" wird auf CCM (de.ccm.net) unter den Bedingungen der Creative Commons-Lizenz zur Verfügung gestellt. Unter Berücksichtigung der Lizenzvereinbarungen dürfen Sie das Dokument verwenden, verändern und kopieren, wenn Sie dabei CCM deutlich als Urheber kennzeichnen.