Versteht jemand wie wir diese zwei Binärzahlen, mit 1 Bit Vorzeichen, 3 Bits Exponent und 4 Bits für dei Mantisse(fraction) addiert haben? (In Festkomma)?

1 Antwort

Zu 3.: Wenn du das Ergebnis wieder in das Minifloatformat umwandeln willst, musst du die Schritte, die du gemacht hast um eine Festkommazahl zu kriegen, wieder umdrehen. Daher stellst du die Zahl wieder in Exponentialschreibweise (also 1,11011 * 2³) dar. Die zusätzliche 0 war wahrscheinlich wirklich ein Schreibfehler. Der ist aber egal, weil die nachfolgen Nullen nichts am Ergebnis ändern. Bei Zahlen im Zehnersystem ist das ja auch so: 4,5 ist das Gleiche, wie 4,500000 oder wie 000004,5000.

Zu 5: Das Ergebnis ist positiv, also ist die erste Ziffer 0. Dann kommt der Exponent, der ist 3 plus der "Excess-Faktor" von 3 = 6. Das ist binär 110. Dann kommt die Mantisse in normalisierter Darstellung. Das heißt, es wird nur der Teil nach dem Komma aufgeschrieben. Die gerundete Mantisse aus 4 ist 1,1110. Wenn man da die 1 vor dem Komma abschneidet, bleibt 1110 übrig. Zusammengesetzt ist das dann 0 110 1110.

Wenn man das in Dezimalzahlen umrechnet, ist das 4,75 + 10 = 15. Das ist das genaueste, was das Minifloatformat schafft.

martinkursik 
Fragesteller
 09.03.2022, 08:34

Vielen Dank!

Was ich aber dann nicht kapiere, bei dem 3 Schritt:

1.1101100000 * 23 

wenn ich das mal 23  mache, ist das doch das Komma hier:

1110.1100000

aber bei der 4.

ist das komma:

11101,100000 hier, also wird ja durch die Klammern 1.1101(100000) dort dargestellt.

0
daCypher  09.03.2022, 08:46
@martinkursik

Nein, bei der 4 ist das Komma direkt nach der ersten 1. Das Komma wird halt als Punkt aufgeschrieben. Die Klammern bedeuten nur, dass die Mantisse nicht lang genug ist, um die Ziffern in den Klammern zu speichern. Deshalb muss die Mantisse gerundet werden.

Also das Ergebnis ist 1110,11 (dezimal: 14,75). Das wird in Exponentialschreibweise dargestellt: 1,11011 * 2³. Das Minifloatformat erlaubt aber nur 4 Binärziffern in der Mantisse, also 1,1101. Da die erste abgeschnittene Ziffer aber eine 1 ist, muss aufgerundet werden, also 1,1110.

1