2 WORDs zu REAL?
-
Hallo.
Ich habe eine C++Builder Anwendung und lese mittels ModLink Daten aus. Dabei ist eine Adresse vom Datentyp WORD. Jetzt hat man dort aber festgelegt das 2 Adressen, also 2 WORD, den Datentyp REAL entsprechen sollen. Sich also aus 2 WORD ein REAL-Wert bildet. Kann mir jemand sagen wie ich aus den 2 WORD die ich erhalte ein REAL mache? Vermutlich meint man damit DOUBLE?
Über Hilfe wäre ich echt sehr erfreut.
-
Vermutlich ist kein double gemeint, sondern float. float wird intern mit 32bit dargestellt, was sich aus 2 Words zusammenbasteln lässt. Über die Byte Order musst du dir jetzt Gedanken machen.
float MyFloat; WORD* Base = reinterpret_cast<WORD*>( &MyFloat ); Base[0] = w1; Base[1] = w2;
-
Vielen lieben Dank für die Hilfe. Rein aus Interesse, wie würde denn der Weg andersherum funktionieren? Also aus einem FLOAT, zwei WORD(HI,LO) zu machen?
-
Hallo
Auch nicht anders.
float MyFloat = ...; WORD* Base = reinterpret_cast<WORD*>( &MyFloat ); WORD w1 = Base[0]; WORD w2 = Base[1];
bis bald
akari
-
Fast genauso:
float MyFloat; WORD* Base = reinterpret_cast<WORD*>( &MyFloat ); WORD w1 = Base[0]; WORD w2 = Base[1];
Edit:
Drei Punkte weniger und 50 Sekunden später als Akari
-
Oh, da habe ich noch zu lernen. ^^
Danke euch beiden vielmals!