studyklar
GdI 1 · Übungsblatt 2 · Aufgabe 1

Gleitkommazahlen nach IEEE 754 lesen und die nächstkleinere finden

Computer speichern Kommazahlen als Gleitkommazahlen: ein Vorzeichen, eine Zweierpotenz und eine Zahl zwischen 1 und 2, alles in 32 bit. Wir lesen eine solche Bitfolge als Dezimalzahl (Teil a) und suchen die größte darstellbare Zahl, die kleiner als eine gegebene ist (Teil b). Rechts stehen die Bits, die Felder zum aktuellen Schritt sind hervorgehoben. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

Aufgabe 2.1

Betrachtet werden zwei Gleitkommazahlen X und Y nach IEEE 754 mit einfacher Genauigkeit und in normalisierter Darstellung.

VorzeichenExponentMantisseBias
Einfache Genauigkeit1 Bit8 Bit (emax=255e_{max} = 255)23 Bit127

Normalisiert, falls 0<e<emax0 < e < e_{max}: Wert (−1)s⋅1.m⋅2e−b(-1)^s \cdot 1.m \cdot 2^{e-b}.

a) Bestimmen Sie den Dezimalwert x der folgenden Gleitkommazahl:

1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

b) Gegeben ist die Darstellung der Zahl X:

X: 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Geben Sie die Darstellung der größten Zahl Y an, die kleiner ist als X!

Gegeben sind zwei Bitfolgen von je 32 bit. Jede steht für eine Kommazahl nach dem Standard IEEE 754 (eine weltweit gültige Regel, wie Gleitkommazahlen in Bits gespeichert werden). „Einfache Genauigkeit“ heißt: 32 bit. „Normalisiert“ heißt: vor dem Komma steht immer eine 1.

In a) übersetzen wir die Bits in eine Dezimalzahl. In b) ist X gegeben; gesucht sind die Bits der Zahl Y, die direkt unter X liegt: Zwischen Y und X passt keine andere Gleitkommazahl mit 32 bit.

Merke: Wert = (−1)s⋅1.m⋅2e−b(-1)^s \cdot 1.m \cdot 2^{e-b} mit Bias b=127b = 127. Das Vorzeichenbit ss sagt plus oder minus, der gespeicherte Exponent ee minus den Bias bb (Schritt 3 erklärt ihn) sagt, um wie viele Stellen das Komma wandert: e−be - b. Die Mantisse mm sind die Stellen nach dem Komma.
  1. a) Die Bits in Vorzeichen, Exponent und Mantisse aufteilen.
  2. a) Jedes Feld einzeln in eine Zahl übersetzen, dann in die Formel einsetzen.
  3. b) X lesen und überlegen, wie man eine Gleitkommazahl um den kleinsten Schritt verkleinert.
  4. b) Die Bits von Y aufschreiben und zur Probe ihren Wert ausrechnen.

Die 32 bit in drei Felder teilen

FeldBits
Vorzeichen ss1
Exponent ee10000010
Mantisse mm01110000000000000000000

Die Tabelle der Aufgabe sagt, wie die 32 bit aufgeteilt sind: zuerst 1 bit für das Vorzeichen, dann 8 bit für den Exponenten, dann 23 bit für die Mantisse. 1 + 8 + 23 = 32. Wir schneiden die Bitfolge also nach dem 1. und nach dem 9. Bit.

Das Vorzeichen: s = 1 heißt negativ

s=1⇒(−1)1=−1s = 1 \quad\Rightarrow\quad (-1)^1 = -1

In der Formel steht vorne (−1)s(-1)^s. Bei s=0s = 0 ist das (−1)0=1(-1)^0 = 1, die Zahl ist positiv. Bei s=1s = 1 ist es −1, die Zahl ist negativ. Hier ist das erste Bit eine 1.

Noch 8 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1a) Den Dezimalwert x bestimmen

313029282726252423222120191817161514131211109876543210x11000001001110000000000000000000
V
Exponent
Mantisse
LegendeDie Gleitkommazahl aus a) in ihren drei Feldern.