0 Daumen
132 Aufrufe

Hey Leute könnt ihr mir auch noch einmal hier helfen ?
Geben Sie die IEEE Gleitpunktdarstellung der folgenden Zahlen:

 a) 3,625

Antwortversuch:

2^n*1.M werden

n = ln(3,625)/ln(2) = 1,85798

Soll ich jetzt auf oder abrunden ?
Test :
2^-1*3,625 = 1,8125
Ok ?
Also
n = 1
E-127 = n
E = 128
E = 10000000
VZ = 0 da Positiv
010000000 und weitere 0 dran hängen ?

von

Bitte Darstellung allfälliger Exponenten prüfen.

Klammern und Abstände nach ^ können helfen (Klartext), wenn es sonst nicht wie gewollt aussieht.

Fragestellung vervollständigen. Bzw. angeben, wo der Antwortversuch beginnt.

1 Antwort

+1 Daumen

Ohne Sonderfälle zu beachten, würde ich so vorgehen : Die Float-Zahl solange mit 2 dividieren / multiplizieren, bis das Ergebnis zwischen 1 und 2 liegt.

3.625 / 2 = 1.8125

Wegen der einen Division lautet der Exponent also +1. Im IEEE-Format wird 127 addiert, also ist der Exponent 128 (0x80)

Bleibt die Mantisse von 0.8125. Diese ergibt sich zu 2^23 * 0.8125 = 6815744 (0x680000)

Das Vorzeichen des Float-Werts ist positiv. Damit lautet das IEEE-Format

0 10000000 11010000000000000000000

zusammen also 0x40680000

von

a) 3,625

2n*1.M werden

n = ln(3,625)/ln(2) = 1,85798

Soll ich jetzt auf oder abrunden ?
Test :
2^-1*3,625 = 1,8125
Ok ?
Also
n = 1
E-127 = n
E = 128
E = 10000000


VZ = 0 da Positiv
010000000


Bis hierhin müsste mein weg ja richtig sein?

Wie machst du die Berechnung mit der Mantisse genau?

Bleibt die Mantisse von 0.8125. Diese ergibt sich zu 223 * 0.8125 = 6815744 (0x680000)

Eventuell wird das Verfahren durch ein weiteres Beispiel klarer :

Float 0.4 -> muss mit 2^2 multipliziert werden, damit das normierte Ergebnis zwischen 1 und 2 liegt. Der Exponent lautet also -2, im IEEE-Format dann -2+127 = 125 (0x7D).

Beim normierten Ergebnis von 1.6 wird die vordere eins weglassen, es verbleiben 0.6 als Mantisse.

2^23 * 0.6 = 5033164,8 ~ 5033165 (0x4CCCCD)

Das IEEE-Format lautet also

0 01111101 100 1100 1100 1100 1100 1101

macht zusammen

0x3ECCCCCD

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...