Próbuję użyć unpack
łańcucha szesnastkowego do podwójnego w języku Python.Czytanie heksadecymatu dla pythonu z podwójną precyzją:
Kiedy próbuję rozpakować następujące elementy:
unpack('d', "4081637ef7d0424a");
pojawia się następujący błąd:
struct.error: unpack requires a string argument of length 8
nie zrobić bardzo dużo dla mnie sensu, ponieważ podwójne ma długość 8 bajtów, i
2 postać = 1 szesnastkowy = 1 bajt
W gruncie rzeczy, podwójne o długości 8 bajtów byłoby ciągiem 16-znakowym.
Wszelkie wskazówki dotyczące rozpakowania tego heksa do podwójnego byłyby bardzo mile widziane.
"Łańcuch" oczekiwany przez 'struct.unpack' nie jest łańcuchem szesnastkowym, to surowe bajty. W języku Python3 będzie to "bajty", a nie "str". Użyj 'bytearray.fromhex' lub po prostu' str.decode', patrz odpowiedź Svena Marnacha. – L3viathan