Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Technische Informatik (http://www.informatikerboard.de/board/board.php?boardid=7)
--- Format ähnlich zum IEEE Format finden? (http://www.informatikerboard.de/board/thread.php?threadid=3385)


Geschrieben von jwagner am 09.01.2017 um 17:05:

  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!



Geschrieben von eulerscheZahl am 09.01.2017 um 17:20:

 

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.



Geschrieben von jwagner am 09.01.2017 um 19:20:

 

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)



Geschrieben von eulerscheZahl am 09.01.2017 um 19:58:

 

Ü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.



Geschrieben von jwagner am 09.01.2017 um 21:20:

 

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!



Geschrieben von eulerscheZahl am 09.01.2017 um 21:32:

 

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.



Geschrieben von jwagner am 10.01.2017 um 11:11:

 

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!


Forensoftware: Burning Board, entwickelt von WoltLab GmbH