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

Informatiker Board » Themengebiete » Theoretische Informatik » Berechnung Gleitkommazahl in Dezimal? » 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 Berechnung Gleitkommazahl in Dezimal?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
piratol
Grünschnabel


Dabei seit: 31.05.2019
Beiträge: 8

Berechnung Gleitkommazahl in Dezimal? 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:
Ich habe ein Problem mit der Berechnung von Gleitkommazahlen in Dezimal.

Ich habe hier eine Gleitkommazahl 001000111111110110011100011 welche in Dezimal berechnet werden soll.

Ich schaff es einfach nicht die Gleitkommazahl umzurechnen.

Was mich sehr verwirrt ist, dass alle Berechnungen 32 Bit (1 Vorzeichenbit, 8 Exponenten Bits, 23 Mantissen Bits haben).

In meiner Aufgabe sind es insgesamt nur 27 Bit , basis=2 , exponent=7 , Mantisse=19).

Vielen Dank für die Hilfe !

Meine Ideen:
Ich habe schon viele Berechnungen probiert nur bin ich leider mit der Verschiebung durch meinen Exponenten echt überfordert. Allgemein die angepassten Werte machen mir zu schaffen...
31.05.2019 21:27 piratol ist offline E-Mail an piratol senden Beiträge von piratol suchen Nehmen Sie piratol in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

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

"basis=2" sagt mir nichts.
Aber wenn man ein Vorzeichenbit, 7 exponent und 19 Mantisse nimmt, kommt man doch auf 27, oder?

Ich verstehe nicht, wie es sein kann, dass Dir angeblich 32bit keine Probleme machen, aber wenn dann Mantisse und Exponent eine andere Anzahl von Bit haben, funktionierts plötzlich nicht mehr. Erklär doch mal, wie Du das dann mit den 32bit-Zahlen machst?

Gruß
Marco
02.06.2019 15:29 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
piratol
Grünschnabel


Dabei seit: 31.05.2019
Beiträge: 8

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

Ja man kommt auf 27, wie bereits in meiner Frage erwähnt. Das Problem habe ich bei der Verschiebung des Kommas welche durch meinen "komischen" Exponenten verursacht wird... ist glaube ich eine Verschiebung ins negative um 28 Stellen.... wobei ich mir nicht sicher bin und genau da liegt das Problem... ich komme auf kein Ergebnis und würde mich deswegen über einen Lösungsweg+ Lösung freuen
02.06.2019 21:12 piratol ist offline E-Mail an piratol senden Beiträge von piratol suchen Nehmen Sie piratol in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

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

Also...
Vorzeichenbit ist 0 -> positiv
Der Exponent ist ja:
0100011
Bei 7Bit Exponent ist der Bias 2^(7-1) - 1 = 2^6 - 1 = 64 -1 = 63
0100011 in dezimal ist 35
Also ist der Exponent 35 - 63 = -28
Hast Du also richtig gerechnet, die Mantisse ist 28 Stellen nach rechts verschoben.

Die ist (1),1111110110011100011
Das jetzt um 28 Stellen nach rechts wäre dann 0,00000000000000000000000000011111110110011100011
Aber es ist wohl einfacher zu rechnen, wenn Du erst die 1,1111110110011100011 in eine Dezimalzahl umrechnest, oder auch, direkt
11111110110011100011
Das würde dezimal nämlich einer 1043683 entsprechen.
Jetzt hast Du das Komma aber um 19 Stellen (also der Bit-Anzahl der Mantisse) nach rechts verschoben, Du musst es aber ja eigentlich 28 Stellen nach links verschieben. Also musst Du diese 1043683 noch mit 2^(-28-19) = 2^(-47) multiplizieren.
Kommt dann ungefähr 7.41581374* 10^(-9) dezimal raus.

Gruß
Marco
03.06.2019 13:48 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
piratol
Grünschnabel


Dabei seit: 31.05.2019
Beiträge: 8

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 die ausführliche Erläuterung hat mir wirklich geholfen!
03.06.2019 22:23 piratol ist offline E-Mail an piratol senden Beiträge von piratol suchen Nehmen Sie piratol in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Berechnung Gleitkommazahl in Dezimal?