Int to float
-
Hallo
Wie wandle ich ein Int(4Bytes) in ein Float (4Bytes) um?
Damit meine ich NICHT diese Konvertierung hier...
int 1234 = float 1234.00int i=1234; float f=(float)i;
... sondern diese:
hexadezimal = deziaml = float
0000C842 = 1120403456 = 100.00Integer 1120403456 soll in 100.00 umgewandelt werden. Ich habe mir schon vergeblich nen Wolf dazu gegoogelt und finde immer nur Antworten auf die erster Konvertierungsart.
-
reinterpret_cast
-
90-60-90 schrieb:
nen Wolf dazu gegoogelt
geiler Ausdruck
Sind deine Maße 90-60-90?
-
90-60-90 schrieb:
Integer 1120403456 soll in 100.00 umgewandelt werden.
Ich versuche ganz dolle nen Sinn zu finden. Klappt aber nicht.
-
"union" sollte dir weiterhelfen
-
Blue-Tiger schrieb:
"union" sollte dir weiterhelfen
Nee...
-
union ist für float <-> int durchaus definiert wenn mich nicht alles täuscht.
Ansonsten ist ein reinterpret_cast<>() genauso zulässig und korrekt
-
Danke für die vielen schnellen antworten.
Ich habe es mit union gemacht. Union kannte ich noch gar nicht ^^
Nachdem ich noch etwas gegoogelt habe soll man wohl mit reinterpret_cast vorsichtig sein und mit union ist es wohl sicherer.90-60-90? .. ne aber vielleicht bekommt man dann besonders schnelle Hilfe - sowas macht aufmerksam :p
-
hexadezimal = deziaml = float
0000C842 = 1120403456 = 100.00wo ist denn da der zusammenhang?
dieses forum wirft mir mehr fragen auf, als es klärt!
-
out of context schrieb:
hexadezimal = deziaml = float
0000C842 = 1120403456 = 100.00wo ist denn da der zusammenhang?
dieses forum wirft mir mehr fragen auf, als es klärt!
#include <iostream> using namespace std; int main() { // 0000C842 (in Litle-Endian durch eine x86-CPU abgespeichert entspricht 0x42CB0000 ) int i = 0x42C80000; if ( i == 1120403456) cout << "Speicherdump wurde falsch interpretiert!" << endl; union x { int a; float b; }y; y.a = i; if (y.b == 100.0) cout << "Hast'e es nun verstanden?" << endl; }