Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Sonstige Fragen (http://www.informatikerboard.de/board/board.php?boardid=25)
--- Zahl in IEEE umrechnen (http://www.informatikerboard.de/board/thread.php?threadid=1938)


Geschrieben von 123michi19 am 22.10.2014 um 19:38:

  Zahl in IEEE umrechnen

Meine Frage:
Hi zusammen,

noch eine Frage zur Umrechnung einer Dezimalzahl in eine Gleitzahl (IEEE)

Die Zahl lautet 18,4.

1) S bestimmen, positives Vorzeichen, daher 0
2) n bestimmen -> n = 4 B = 4+127 = 131 (befinden uns im Binary 32)
In Binär: 10000011_2
3) Mantisse: b = (18,4 / 16) - 1 = 0,15

So, jetzt zu meinem Problem:


Überlauf
0,15*2 = 0
0,30 * 2 = 0
0,6*2 = 1
0,2 * 2 = 0
0,4*2 = 0
0,8*2 = 1
0,6*2 = 1
0,2*2 = 0


Jetzt befinde ich mich in der Lage, dass immer die Gleiche Folge rauskommt. Wie kann ich dies dann in der Mantisse schreiben?



Am Ende heißt es bei mir ja dann:

0 I 10000011 I (hier muss die Mantisse noch hin)

Meine Ideen:
Vielen Dank für Eure Unterstützung :-)



Geschrieben von eulerscheZahl am 22.10.2014 um 20:33:

 

Bis dahin alles richtig.
Ja, das wird periodisch. Du nimmst einfach die ersten 23 Bit der Binärfolge und schreibst sie in die Mantisse. Die Zahl 18,4 kann binär nicht exakt gespeichert werden, was bei Weiterverwendung des Ergebnisses zu Problemen führen kann.

Beispiel:
code:
1:
2:
3:
4:
float summe = 0;
for(int i = 0; i < 1000; i++)
  summe = summe + 0.1;
summe = summe - 100;

in summe steht jetzt nicht 0, sondern -0.000954 (mit g++ kompiliert)



Geschrieben von 123michi19 am 22.10.2014 um 20:35:

 

Vielen Dank für deine Antwort. Die 23 Bit sind dann standardmäßig, falls in der Klausur wirklich eine Perioden-Mantisse (gibt es dieses Wort überhaupt großes Grinsen ) kommt?



Geschrieben von eulerscheZahl am 22.10.2014 um 20:41:

 

Das ist genormt - und das ist auch gut so.
23 Bit Mantisse bei float (32bit Gleitpunktzahl) und 52 Bit bei double (64bit)



Geschrieben von 123michi19 am 23.10.2014 um 13:08:

 

Top, dankeschön :-)


Forensoftware: Burning Board, entwickelt von WoltLab GmbH