Ganzzahl in Gleitpunktzahlen umwandlen

Erste Frage Aufrufe: 1782     Aktiv: 20.04.2020 um 21:01

0

Zugegeben ich kenn mich (fast) nicht aus. Hab für ein Projekt mich in Sachen wie Ganzzahlen, Gleitkommazahlen eingelesen. Aber bei der praktischen Umsetzung stehe ich an. Folgende Aufgaben hätte ich:

folgende Aufgabenstellung: 3.141590e+000 als 16bit Ganzzahl einlesen (ist es dann die 3?) = Wert D

1471 als 32bit Ganzzahl einlesen - diese Ganzzahl in eine Gleitpunktzahl 32bit umwandeln = Wert A

1.000000e+001 als 16bit Ganzzahl einlesen (eine 10?) = Wert B

Wert A durch Wert B dividieren (als Gleitpunktzahl) = Wert C

Diesen Wert C durch Wert D dividieren Als Ergebnis müsste sowas wie eine Koordinate herauskommen

Ich vermute, dass dies sehr verwirrend ist (nicht nur für mich), aber vielleicht hat jemand eine Lösung bzw Erklärung für mich parat. LG

Diese Frage melden
gefragt

Punkte: 10

 

Hast du eine Vorgabe, welche Programmiersprache zu nutzen ist oder geht es ganz allgemein um das Vorgehen wie man eine Zahl umwandelt

  ─   idefix 15.04.2020 um 17:02

Es geht um STEP7 - von Siemens.

  ─   FranzRauscher 15.04.2020 um 20:35
Kommentar schreiben
1 Antwort
0

Guten Abend :) Stellt sich das Problem bei dir noch? Das Thema finde ich ist recht schwierig zu erklären, aber ich werde es mal versuchen. Ich verstehe auch nicht so ganz was deine Aufgaben sind, aber hier einmal was ich weiß.

Bei der 32 Bit Gleitkommazahl ist es so, dass das Bit 31, das ganz links, das Vorzeichenbit ist. 0 -> positiv, 1 -> negativ. Das wird sich zum 16 Bit auch nicht ändern. Die 8 nächsten Bits entsprechen dem Exponenten. Das Bit 30 entspricht der 2^7, das Bit 29 entspricht der 2^6, usw bis zum Bit 23, das der 2^0 entspricht. Die Bits 22 bis 0 entsprechen der Mantisse. Auch hier, von links nach rechts 2^-1 (Bit 22) bis 2^-23 (Bit 0).

Jetzt wird es spannend. Den Exponenten nennen wir von nun an E, die Mantisse M, und das Vorzeichenbit V

Gilt nun 0 < E < 255, so ist der Wert (-1)^V * 2^(E-127) * (1,M), wobei 1,M wirklich als ein "eins Komma Mantisse" gesehen werden muss.

enter image description here

Ich werde versuchen zwei Screenshots einzufügen von zwei Beispielen, eines wo eine Dezimalzahl, wie in einem deiner Fälle, zu einer dualen Fließkommazahl umgewandelt wird, und eines mit dem gegenteiligen Prozess.

enter image description here enter image description here

So genau. Wenn du das dann verstanden hast, musst du schauen, wie eine 16 Bit Gleitkommazahl aufgebaut ist, das weiß ich jetzt gar nicht, und das dort dann übertragen. Dazu gibt es auf Youtube auch diverse Videos, so erst habe ich es verstehen können, mein damaliger Prof hat das nicht so geil erklärt ^^ Um zu überprüfen, ob das was du findest dann auch stimmt, habe ich mal einen online Rechner gefunden, mal sehen ob ich den auf die Schnelle wiederfinde... Jo genau da ist sie. Das hilft vielleicht auch beim Verständnis https://www.h-schmidt.net/FloatConverter/IEEE754de.html Ich hoffe ich habe dir zumindest ein bisschen weiterhelfen können

Diese Antwort melden
geantwortet

Student, Punkte: 10

 

Kommentar schreiben