Darstellung des Exponenten in IEEE-754 Single Precision als Summe?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich verstehe nicht, warum man eine unübersichtliche Summenformel hinschreibt, um einfach nur Bits zu addieren. Stimmt die überhaupt ? Müsste die Formel für den Exponenten nicht so heißen ? (Man beachte, dass es ein großes J für die Anzahl der Bits und ein kleines j für den Iterator gibt)



Der Exponent muss natürlich negative und positive Werte annehmen können, da man auch sehr kleine Zahlen darstellen will

Wenn man von diesem speziellen Floating-Point Format nichts weiß, würde man als ITler bei einem 8-bit Exponenten den üblichen Wetebereich von signed integer Zahlen von -128 ... +127 vermuten.

Jedoch liest man hier

https://en.wikipedia.org/wiki/Single-precision_floating-point_format

The single-precision binary floating-point exponent is encoded using an  offset-binary representation, with the zero offset being 127; also known as exponent bias in the IEEE 754 standard.

Das heißt, der Nullexponent (Multiplikator 1) wird mit der Zahl 127, dh 2^7 - 1 dargestellt. Daher wird oben die Konstante 2^J - 1 abgezogen

Beispiel die Zahl 1
0 01111111 00000000000000000000000
Die Zahl 2
0 10000000 00000000000000000000000
Die Zahl 0,5
0 01111110 00000000000000000000000

Dort steht außerdem, dass spezielle Werte des Exponenten für die Darstellung von Sonderfällen, wie der Zahl NULL, und +/- unendlich, gebraucht werden, und daher für normale Fließkommazahlen nicht zur Verfügung stehen.


KANGAROOOOOOO 
Beitragsersteller
 10.11.2022, 10:42

Dankeschön für die Antwort.
Dass man Spezialfälle für NaN, Infinity und 0 braucht, ist mir bewusst.
Auch ich war der Meinung, dass die Summe in dieser Form, wie sie auf der Folie steht. nicht stimmen kann, sondern anders aussehen muss. Danke

1
scatha  10.11.2022, 10:49
@KANGAROOOOOOO

Die Hauptfalle für mich war diese: Ich habe lange gebraucht, um zu kapieren, dass Klein j und Groß J zwei verschiedene Variablen sein sollen. Kommt dies bei Euch öfters vor ? Er hätte ja wenigstens aus Lesbarkeitsgründen für den Summeniterator etwas Anderes, z.B. "n" nehmen können.

Klarstellen sollte man in der Kommunikation auch, ob man vom Exponenten als solches (x) spricht, oder vom Multiplikator, der durch den Exponenten ausgedrückt wird (2^x)

1
KANGAROOOOOOO 
Beitragsersteller
 10.11.2022, 10:54
@scatha

Ich habe vergessen, das dazuzuschreiben bzw darauf hinzuweisen. Normalerweise ist die Benennung etwas eindeutiger aber in diesem Falle erfolgte sie sehr verwirrend.

Die Wertebereichangabe erfolgte explizit für den Multiplikator, nicht den Exponenten.

1