Format ähnlich zum IEEE Format finden? |
09.01.2017, 17:05 | Auf diesen Beitrag antworten » |
jwagner | Format ähnlich zum IEEE Format finden? Meine Frage: Hallo! Ich habe die folgende Aufgabe bekommen: Ich soll einen Format entwerfen, der die Zahlen 65408 und -1.52587890625*10^-5 darstellen kann. Wie kann ich da voran gehen? Bin leider total verloren! Meine Ideen: Ich bitte um kleine Wegweiser, dank schon im Vorraus! |
|
|
09.01.2017, 17:20 | Auf diesen Beitrag antworten » |
eulerscheZahl | Im IEEE gibt es drei Bestandteile: Vorzeichen, Mantisse, Exponent. Das Vorzeichen sollte klar sein: es gibt offensichtlich eines. Wie viel Bit brauchen aber Mantisse und Exponent? Rechnen wir die Zahlen doch erst einmal ins Dualsystem um: 65408 = 1111111110000000 = 1.11111111 * 2^15 1.52587890625*10^-5 = 1 * 2^-16 Der Exponent ist im Bereich -16 bis +15, kann also 32 verschiedene Werte annehmen. Das entspricht log2(32) = 5 Bit. Unter Berücksichtigung des hidden Bit bleiben für die Mantisse noch 8 Bit. |
09.01.2017, 19:20 | Auf diesen Beitrag antworten » |
jwagner | Vielen Dank! Du warst schon eine riesen Hilfe! Eine Frage habe ich jedoch: Wie komme ich auf die 8 Bit in der Mantisse? Und würde das Format dann in etwa so ausschauen: 0 00000 00000000 (dabei ohne Rücksicht auf die gegebenen Zahlen) |
09.01.2017, 19:58 | Auf diesen Beitrag antworten » |
eulerscheZahl | Übertrage die Zahlen mal in unser System. 1.52587890625*10^-5 = 1 * 2^-16 hat als Zahl eine 1, der Rest ist im Exponenten. Das kritische ist hier 65408 = 1111111110000000 = 1.11111111 * 2^15 Die Mantisse muss also 1.11111111 darstellen können. Die 1 vor dem Komma kriegen wir durch geeignete Wahl des Exponenten geschenkt. Bleibt noch der Teil nach dem Komma. Es kommt hier auf die letzte 1 an, die steht 8 Stellen nach dem Komma. Ob dazwischen 0er oder 1er sind, ist egal. |
Anzeige | |
|
|
09.01.2017, 21:20 | Auf diesen Beitrag antworten » |
jwagner | Ich glaube ich verstehe es! Das heißt, für die erste Zahl kommt 0 11111 11111111 raus und bei der zweiten 1 00000 00100111? Stimmt das so? Die Mantisse für den Minuswert habe ich Online ausgerechnet, wüsste nicht wie man das selbst herausbekommt! |
09.01.2017, 21:32 | Auf diesen Beitrag antworten » |
eulerscheZahl | Ehrlich gesagt weiß ich noch nicht einmal, welche Bitfolge jetzt welche Zahl darstellen soll. In der Mantisse findet keine Komplementbildung für negative Zahlen statt, das geht nur über das Vorzeichenbit. -1.52587890625*10^-5 = 1 (negativ) 00000 (-16, biased *) 00000000 (Mantisse, kein Nachkommaanteil) 65408 = 0 (positiv) 11111 (+15) 11111111 (Nachkommaanteil von 1.11111111 * 2^15) * in IEEE gibt es eigentlich noch Sonderbedeutungen für alle Bits 0 bzw. alle 1 im Exponenten. Aber wir dürfen das Format ja selbst definieren. Und weil ich faul bin, ignoriere ich das einfach. |
10.01.2017, 11:11 | Auf diesen Beitrag antworten » |
jwagner | Achso! Jetzt verstehe ich die negative Zahl. Die Mantisse ist 0, da wir die Nachkommazahl im Exponenten schon dargestellt haben, richtig? Ich kann mich nicht genug bei dir bedanken! |
|