Maschinenzahl

Aus testwiki
Zur Navigation springen Zur Suche springen

Unter einer Maschinenzahl versteht man eine Zahl, die im Computer in binärer Form gespeichert wird. Man unterscheidet dabei Integerzahlen (Ganze Zahlen) und Gleitkommazahlen oder Realzahlen (Reelle Zahlen).

Auf Grund der Darstellung in einem konkret vorgegebenen Speicherformat entsteht ein endlicher Zahlenvorrat. Integerzahlen können mit Vorzeichen bei einer Länge von n Bit im Zweierkomplement die Zahlen von 2(n1) bis +2(n1)1 abbilden, ohne Vorzeichen von 0 bis 2n1. Bei einer Länge von 8 Bit (ein Byte) können also mit Vorzeichen die Zahlen von −128 bis +127 gespeichert werden, ohne Vorzeichen von 0 bis 255.

Reelle Zahlen werden als Kombination aus Mantisse * Exponent gespeichert. Auf Grund dessen entstehen Rundungsfehler, wenn das Ergebnis nicht zufälligerweise wieder genau eine Maschinenzahl trifft. Wie diese Zahlen konkret gespeichert werden können, ist teilweise genormt – z. B. IEEE 754.

Die Reduktionsabbildung

Die Reduktionsabbildung fl: bildet eine (exakte) reelle Zahl x auf die Computerdarstellung fl(x) ab.

Man kann grundsätzlich jede reelle Zahl x{0} eindeutig in einer Potenzreihendarstellung zur Basis b{1} darstellen:

x=±(j=1djbj)be,

wobei folgende Einschränkungen (für Eindeutigkeit) gelten sollen:

dj0mit{1d1<b0dj<b,j=2,3,e.

In einer Computerdarstellung können nicht unbegrenzt lange Mantissen dj,j abgespeichert werden, sondern immer nur eine endliche Mantisse dj,j=1,2,,m mit der Mantissenlänge m. Des Weiteren gibt es auch ein einschränktes Intervall für den Exponenten: reR mit r,R.

Die Reduktionsabbildung fl: wird wie folgt definiert:

fl(x):=±{(j=1mdjbj)befallsdm+1<b2(j=1mdjbj+bm)befallsdm+1b2.

Anmerkungen

Die Zahl x=0 kann auch exakt dargestellt werden mittels: fl(0):=0.

Für x,x0 mit einem Exponenten e, der nicht im Intervall [r,R] liegt, wird die Reduktionsabbildung wie folgt definiert:

fl(x):={0,e<rsgn(x),e>R.

Wichtig hierbei zu beachten ist, dass fl weder injektiv noch surjektiv ist. Es werden nämlich viele Zahlen x mit derselben Maschinenzahl dargestellt (deshalb nicht injektiv) bzw. das Bild der Funktion ist nur eine endliche Menge (deshalb nicht surjektiv).

Ein weiterer oft benutzter Namen für die Reduktionsabbildung lautet: fl(x)=rd(x).

Mit ihrer Hilfe kann der absolute Rundungsfehler bei der Kodierung einer Zahl ermittelt werden.

Siehe auch