Thomas schrieb:
> Hi Danke für die schnelle Antwort,
> aber ich denke Du hast es in der Festkommazahl Schreibweise gelöst.
Nö.
> die 4 für den Exponenten, die 3 für Mantisse
Bist du dir da ganz sicher?
Normal hat man mehr Bits für die Mantisse und weniger Bits für den
Exponenten. Warum wird gleich klar werden
tip hat das wohl ähnlich gesehen und die Dinge umgedreht.
Wie ist er drauf gekommen?
du sollst
-2.75 darstellen
Das Vorzeichen ist klar, das wandert sofort in sein Bit
Damit bleibt die Aufgabe 2.75 mit 4 Bits Mantisse und 3 Bits Exponent
darzustellen.
gesucht sind also m und e, sodas
m * ( 2 hoch e ) = 2.75
(Ich schreib im folgenden ^ anstelle von 'hoch')
Wir wissen, dass die Mantisse immer im Bereich 0 bis 1 sein muss. Also
probieren wir mal.
Kann der Exponent 0 sein?
-> dann müsste m gleich 2.75 sein, denn (2.75 * 2^0) = 2.75
-> das kann nicht sein, denn 2.75 als Mantisse ist größer 1
Kann der Exponent 1 sein?
-> dann müsste m gleich 1.375 sein (also die Hälfte von 2.75)
denn 1.375 * 2^1 = 2.75
-> kann auch nicht sein, denn 1.375 ist immer noch größer als 1
Kann der Exponent 2 sein?
-> dann müsste die Mantisse 0.6875 sein (also die Hälfte von 1.375)
denn 0.6875 * 2^2 = 2.75
-> das passt. 0.6875 ist kleiner als 1
In der Praxis dividierst du deine Zahl einfach solange durch 2, bis du
kleiner als 1 bist, bzw. umgekehrt, bei kleinen Zahlen multiplizerst du
mit 2 bist du die größte Zahl kriegst, die gerade noch kleiner als 1
ist. Und: du zählst mit, wie oft du multiplizert und dividiert hast.
Diese Anzahl ist dein Exponent.
Also: Der Exponent ist also 2 und die Mantisse 0.6875
Die 2 als Exponent lassen sich in Bitform problemlos angeben.
Was ist mit den 0.6875?
Du hast 4 Bits zur Verfügung, mit den Wertigkeiten
1/2
1/4
1/8
1/16
x x x x
Um 0.6875 darzustellen, brauchst du da das Bit für 0.5?
Ja, das brauchst du, denn die restlichen 3 Bits zusammen ergeben keine
0.5 mehr. Da 0.6875 größer als 0.5 ist, musst du also auf jeden Fall das
0.5 Bit benutzen
1 x x x
was ist mit dem nächsten Bit mit der Wertigkeit 0.25
Sind beide Bits gesetzt
1 1 x x
dann wäre das mindestens die Zahl 0.75 (= 0.5 + 0.25)
das ist aber schon zu groß für 0.6875
Also brauchst du das Bit nicht, und es bleibt 0
1 0 x x
nächstes Bit 0.125. Würdest du es setzen
1 0 1 x
dann wäre das mindestens die Zahl 0.625 (= 0.5 + 0.125)
0.625 ist kleiner als die darzustellenden 0.6875. Daher brauchst du
dieses Bit, denn mit den noch folgenden Bits kannst du keine 0.125 mehr
erreichen und die brauchst du um deine Zahl zumindest bis auf 0.625
'anzuheben'.
Also brauchst du dieses Bit auf 1
Was ist mit dem nächsten Bit, mit der Wertigkeit 0.0625?
Setzt du es auf 1
1 0 1 1
dann ist das die Zahl 0.6875 (= 0.5 + 0.125 + 0.0625)
Und das passt genau. 0.6875 waren in der Mantisse zu erreichen. Das
Bitmuster
1 0 1 1
ergibt mit den Bitwertigen ( 0.5 0.25 0.125 0.0625 ) die Darstellung von
0.6875
also lautet dein Bitmuster
x x x x x x x x
VZ 2^1 2^0 . 1/2 1/4 1/8 1/16
1 0 1 0 1 0 1 1
Habt ihr denn das in der Schule nicht durchgekaut?