0 Daumen
735 Aufrufe

Aufgabe

Gebe die Dezimalzahlen an, die durch die folgenden IEEE-754 binären 32-Bit - Gleit-kommazahlen dargestellt wird

1 0000 0000 1000 0000 0000 0000 0000 000

Ansatz:

Nun, normalerweise macht man es so, dass das 1. Bit das Vorzeichen ist, d.h. der ganze Spaß ist schon mal negativ. Dann schaut man sich den Exponenten an, der wäre 0000 0000, was einer dezimalen 0 entspricht.

0 - 127 = -127,

d.h. ich müsste den Exponten um 127 Stellen nach links verschieben (?), aber dafür reicht  mein Papier nicht aus.

Der Online-Rechner meint, es käme als Ergebnis der Wert 5,877471754111438e-39 raus. Das erscheint mir doche in sehr komischer Wert für ein Ergebnis. Vermute daher, dass ein Ausnahmefall hier greift.Es gibt ja diese Tabelle mit den Ausnahmen, doch da ist der Fall icht gelistet.

v_e___ m____________________________ Wert
0 0000 0000 000 0000 0000 0000 0000 0000 +0
1 0000 0000 000 0000 0000 0000 0000 0000 -0
0 0111 1111 000 0000 0000 0000 0000 0000 1.0·20 = 1
0 0111 1110 100 0000 0000 0000 0000 0000 1.1·2-1 = 0,75
0 0111 1101 100 1100 1100 1100 1100 1101 1.10011·2-2 = 0,4
1 1000 0000 000 0000 0000 0000 0000 0000 -1.0·21 = -2
0 1000 0011 010 0100 0000 0000 0000 0000 1.01001·24 = 1,28125·16 = 20,5
0 0000 0000 110 0000 0000 0000 0000 0000 0.11·2-126 (denormalisierte Zahl)
0 1111 1111 000 0000 0000 0000 0000 0000 +unendlich
1 1111 1111 000 0000 0000 0000 0000 0000 -unendlich
? 1111 1111 010 0110 0000 0000 0000 0100 NaN


Update:

Habe nun rausgefunden, dass 5,877471754111438e-39 wohl 2^-127 entspricht. Dem negativen Vorzeichen entsprechend, dann -2^-127. Aber warum?. Dachte -2^-126 ist die kleinste darstellbare Zahl

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

IEEE 754 32bit Single Precision - Welcher Ausnahmefall greift hier?

Zuerst sollten wir die Struktur einer IEEE 754 32-Bit Single Precision (Float) Zahl untersuchen:

- Das erste Bit ist das Vorzeichenbit (\(v\)) - \(0\) für positive und \(1\) für negative Werte.
- Die nächsten 8 Bits sind für den Exponenten (\(e\)) - diese werden im Bias-Format gespeichert. Der Bias beträgt \(127\), was bedeutet, dass der tatsächliche Exponent berechnet wird als \(e_{dez} - 127\).
- Die letzten 23 Bits repräsentieren die Mantisse (\(m\)).

Gegeben haben wir die binäre Darstellung:

\(1 0000 0000 1000 0000 0000 0000 0000 000\)

Dies lässt sich in die Komponenten zerlegen:

- \(v = 1\),
- \(e = 0000 0000\),
- \(m = 1000 0000 0000 0000 0000 000\).

Bevor wir fortfahren, sollten wir klären, wie die Zahl interpretiert wird:

- Das Vorzeichen \(-\) (wegen \(v = 1\)),
- Exponent \(e\) umgerechnet in Dezimal ist \(0\) (was jedoch nach dem Abziehen von \(127\) als \(0 - 127 = -127\) nicht direkt als Exponent verwendet wird. Stattdessen weist ein Exponent von \(0000 0000\) auf eine Denormalisierte Zahl hin).

Denormalisierte Zahlen sind dafür gedacht, sehr kleine Werte in der Nähe von Null darzustellen, die nicht mit normalisierten Zahlen repräsentiert werden können. Für solche Zahlen:

- Der Exponent wird fest auf \(-126\) (nicht \(-127\)) gesetzt, weil der Bias \(127\) und denormalisierte Zahlen einen implizit präzidierten Exponenten von \(1 - 127 = -126\) haben.
- Beginnt die Mantisse mit \(0.\) anstatt der impliziten \(1.\) bei normalisierten Zahlen.

Basierend auf deinen Angaben und dem Verständnis, dass es sich um eine denormalisierte Zahl handelt, scheint die anfängliche Interpretation fehlerhaft. Der kritische Fehler besteht darin, dass der gegebene Binärwert korrekt als denormalisierte Zahl behandelt werden sollte. Das bedeutet:

- Der Exponent ist fest auf \(-126\),
- Die Mantisse ist \(0.1\) gefolgt von \(22\) Nullen (wenn wir den impliziten Vorsatz betrachten).

Wenn wir dies in die Formel für denormalisierte Zahlen einsetzen, bekommen wir:

\( -1 \times 1.0 \times 2^{-126} \)

Allerdings wurde dein Wert falsch interpretiert. Dein Update korrigiert den Wert zu \(2^{-127}\), basierend auf dem online Rechner. Es scheint, als sei ein Missverständnis bei der Interpretation der Rechnerausgabe entstanden. Tatsächlich sind denormalisierte Zahlen dazu da, Werte sehr nahe an Null darzustellen, und \(2^{-127}\) ist eine solche Näherung, wobei der genaue Wert von der spezifischen Repräsentation der Mantisse abhängt.

Die korrekte Interpretation für die gegebene binäre Zeichenfolge als denormalisierte Zahl wäre tatsächlich nahezu \(0\), aber negativ und nicht genau \(-2^{-127}\), da denormalisierte Zahlen nicht direkt durch \(2^{e_{dez}}\) berechnet werden, sondern durch eine angepasste Formel, die die spezifische Repräsentation der denormalisierten Mantisse berücksichtigt.

Die Verwirrung entsteht aus der Fehlinterpretation der Exponenten- und Mantissenregeln für denormalisierte Zahlen. Die kleinsten darstellbaren (normalisierten) Zahlen sind tatsächlich nahe an \(\pm2^{-126}\). Denormalisierte Zahlen erlauben die Darstellung noch kleinerer Werte, die näher an Null sind, was in deinem Fall verwendet wird.

Letztlich ist der hier erwähnte Fall ein Beispiel für eine denormalisierte Zahl, die speziell dafür konzipiert ist, sehr kleine Zahlen darzustellen, die näher an Null liegen als das, was durch normalisierte Formate möglich ist.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community