BYTE[8] in __int64 konvertieren
-
Hallo zusammen,
ich würde gerne einen BYTE[8] in einen __int64 konvertieren. Ist dies irgendwie einfach und schnell möglich?
-
Zwar nicht elegant aber so meine erste Idee...
BYTE[8] Zahl1; // Zahl1 irgendwie initialiseren // Umwandeln __int64 *Zahl2 = (__int64*) (void*) &Zahl1;Ich weiß jetzt gar nicht ob sogar
__int64 Zahl2 = (__int64) Zahl1;klappt...
-
Am sichersten bist du, wenn du deinen int mit Bit-Operatoren (| und <<) zusammenbastelst. Aber wenn du es ganz schnell haben willst, klappt auch reinterpret_cast.
-
[quote=CStoll]
Am sichersten bist du, wenn du deinen int mit Bit-Operatoren (| und <<) zusammenbastelst. Aber wenn du es ganz schnell haben willst, klappt auch reinterpret_cast.
[/quote]Was heißt am sichersten... ist es mit dem reinterpret_cast unsicher? Also kann das Ergebnis falsch sein... oder was ist unsicher daran?
@Meyer123
Deine erste Variante klappt... die zweite nicht... warum weiß ich jedoch nichtDanke für die beiden schnellen Antworten

-
reinterpret_cast deutet einfach nur die Bitmuster um - das muß nicht unbedingt mit dem übereinstimmen, was du vorhast. (btw, Meyer's Lösung ist dazu äquivalent - aber C-Casts sind noch unbeliebter als reinterpret_cast ;))
-
Danke CStoll jetzt bin ich wieder klüger :)...
Eine andere Frage: Gibt es einen direkten Weg diese 64 Bit in einen String umzuwandeln :)? Also BYTE[8] in einen String... ich habs jetzt über den Umweg mit der Methode _i64toa_s gemacht. Deswegen mußte ich die erst in __int64 umwandeln aber vielleicht geht das auch direkt?
Auf jedenfall nochmal vielen vielen Dank für die super schnelle Hilfe!