Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » Zahl in IEEE umrechnen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Zahl in IEEE umrechnen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
123michi19
unregistriert
Zahl in IEEE umrechnen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
22.10.2014 19:38
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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)

__________________
Syntax Highlighting fürs Board (Link)
22.10.2014 20:33 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?
22.10.2014 20:35
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
Syntax Highlighting fürs Board (Link)
22.10.2014 20:41 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Top, dankeschön :-)
23.10.2014 13:08
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » Zahl in IEEE umrechnen