Umwandlung einer C byte-array in einen long long
Ich habe eine 8-byte-array in meiner Anwendung mit diesen Daten:
00000133339e36a2
Dieser Daten stellt eine lange (auf der Plattform die Daten, die geschrieben wurde, auf einem Mac wäre dies eine sehr, sehr lange) mit dem Wert von
1319420966562
In der tatsächlichen Anwendung dies ist eine halb-randomisierte Satz von Daten, so dass die Anzahl immer anders sein wird. Daher brauche ich zum konvertieren des byte-array in eine druckbare lange.
Habe ich versucht, Gießen Sie die Daten direkt in eine lange, lange, aber ich kam mit
1305392
soll, wo ich gesehen habe das oben angegebene Nummer.
Für diejenigen von Euch mit mehr Erfahrung in C byte manipulation, als ich es tun würde, wie ich richtig konvertieren eines byte-array in einen long long?
EDIT: Seltsam, alle Ihre Lösungen halten die Ausgabe der gleichen Anzahl: 866006690. Das ist die Dezimalzahl, die letzten vier bytes der Daten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese scheint eine der (seltenen) Situationen, in denen eine Gewerkschaft hilfreich ist:
Kopieren (oder einfach)
le_long_long_array.byte[]
für die array;Lesen zurück
le_long_long_array.longlong
Beispiel:
Fuller Beispiel:
Produziert:
als Sie erwarten würden, für little-endian-Daten.
Je nach gewünschter endianness, so etwas wie dies funktionieren würde:
Vorausgesetzt, Sie sind gespeichert (big-endian.
Große Frage! Und Super Antworten! Werfen Sie einen cent:
ll2
jetzt gleichll1
.Muss ich admin, allerdings mag ich die
union
Beispiele besser. 🙂Vielleicht eine Zeiger-notation?
Oder, wenn möglich,