32Bit wert in float o. DWORD confertieren?
-
ich lese eine 32Bit wert ein als DWORD
nun will ich dies in ein float wert convertieren.. wie gehts das?
direkt casten macht ja kein sin.. wei die bitstruktur ja unterschiedlich ist
-
Was steht denn in deinem 32-Bit Wert drin? Eine verwertbare Zahl oder die binäre Repräsentation eines float-Wertes? Im ersten Fall reicht eine Zuweisung, im zweiten Fall würde ich memcpy()* ausprobieren:
DWORD bytevalue = ...; //inhaltliche Konvertierung: float data = bytevalue; //binäre Konvertierung; float data; memcpy(&data,&bytevalue);
* eigentlich würde ich etwas anderes verwenden, aber dafür sind wir im falschen Board.
-
CStoll schrieb:
[/cpp]
* eigentlich würde ich etwas anderes verwenden...ich auch, statt memcpy:
float data = *(float*)&bytevalue;
-
Problem, habe eine DWORD mit nem bitcode "0100_0000_1000_1001_1001_1001_1001_1010"
welcher den wert 4.1 represnetieren sollte... auf einer SPS MOTOROLA CPU sieht das so aus, müsste auf intel auch nicht anderes sein oder
-
float f; *(long*)&f = 0x40833333; printf("%f\n",f);
-
@float-fan: wow.. es funktioniert...;)