Format ähnlich zum IEEE Format finden? |
jwagner
Jungspund
Dabei seit: 03.11.2016
Beiträge: 11
Herkunft: Deutschland
|
|
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:05 |
|
|
|
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.
__________________ Syntax Highlighting fürs Board (Link)
|
|
09.01.2017 17:20 |
|
|
jwagner
Jungspund
Dabei seit: 03.11.2016
Beiträge: 11
Herkunft: Deutschland
|
|
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:20 |
|
|
|
Ü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.
__________________ Syntax Highlighting fürs Board (Link)
|
|
09.01.2017 19:58 |
|
|
jwagner
Jungspund
Dabei seit: 03.11.2016
Beiträge: 11
Herkunft: Deutschland
|
|
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:20 |
|
|
|
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.
__________________ Syntax Highlighting fürs Board (Link)
|
|
09.01.2017 21:32 |
|
|
jwagner
Jungspund
Dabei seit: 03.11.2016
Beiträge: 11
Herkunft: Deutschland
|
|
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!
|
|
10.01.2017 11:11 |
|
|
|