Hi Leute, ich habe hier eine Aufgabe, bei der ich nicht weiterkomme. Ich hoffe Ihr könnt mir helfen. Die Aufgabe lautet wie folgt: "Stellen Sie das Ergebnis -2.75 als Gleitkommazahl im 8Bit Minifloat-Format (1.4.3.7) bestmöglich dar. Bitte zusätztlich in diesem Format angeben (1.4.3)." Ich weiss, dass die erste Stelle für das Vorzeichenbit steht, die 4 für den Exponenten, die 3 für Mantisse und die 7 für Bias steht. Beim zweiten soll man den Bias vernachlässigen. Kann mir das jemand erklären und die zu beachtenden Schritte schildern, wie man das, wie oben gewünscht, darstellt? Gruss Thomas
also 8 bit sind 8 bit, du zählst ja drüber hinaus. und dann würde das binär bedeuten x x x x x x x x VZ 2^1 2^0 . 1/2 1/4 1/8 1/16 falls man das verstehen kann also in binärdarstellung: 1101 1000 weil das dann genau -2,75 ergibt
Hi Danke für die schnelle Antwort, aber ich denke Du hast es in der Festkommazahl Schreibweise gelöst. Problem hierbei ist, dass man es in Gleitkommazahl Darstellung darstellen soll, irgendwie gibt es da wohl eine Norm IE754 oder ähnliches. Danke :) Gruss Thomas
Thomas schrieb: > eine Norm IE754 IEEE754 Falls dein Vorlesungsskript sich dazu ausschweigt, kannst du die Details allemal brauchbar genug bei Wikipedia nachlesen.
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?
Und jetzt die Preisfrage: Warum krieg ich ein anderes Ergebnis raus als 'tip' und wo stimmt meine Darstellung nicht mit der IEEE754 überein? -> und was bedeutet das für die Berechnung? -> und warum hat IEEE754 eine klein wenig andere Darstellung in der Mantisse? (für 10 Zusatzpunkte in der Lösung der Hausaufgabe)
Hallo Karl Heinz, klasse Ausführung, verständlicher hätte man es nicht ausdrücken können, danke für die Details! Gruß, mira
vielen Dank für die hilfreichen Antworten, aber ja es stimmt: 4 Bits für den Exponenten und nur 3 für die Mantisse :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.