zmień kolejność bajtów w ciągu szesnastkowym (python)
Chcę zbudować mały formater w Pythonie, podając mi wartości liczbowe osadzone w liniach ciągów szesnastkowych.
Jest to centralna część mojego formatyzatora i powinna być rozsądna do formatowania więcej niż 100 linii / sek (każda linia około ~ 100 znaków).
Poniższy kod powinien podać przykład, w którym aktualnie jestem zablokowany.
'data_string_in_orig' pokazuje dany format wejściowy. Musi to być bajt zamieniany dla każdego słowa. Konieczna jest zamiana z 'data_string_in_orig' na 'data_string_in_swapped'. W końcu potrzebuję dostępu do struktury, jak pokazano. Oczekiwany wynik mieści się w komentarzu.
Z góry dzięki Wolfgang R.
#!/usr/bin/python
import binascii
import struct
## 'uint32 double'
data_string_in_orig = 'b62e000052e366667a66408d'
data_string_in_swapped = '2eb60000e3526666667a8d40'
print data_string_in_orig
packed_data = binascii.unhexlify(data_string_in_swapped)
s = struct.Struct('<Id')
unpacked_data = s.unpack_from(packed_data, 0)
print 'Unpacked Values:', unpacked_data
## Unpacked Values: (46638, 943.29999999943209)
exit(0)