Tôi đang cố gắng để unpack
một chuỗi thập lục phân thành một đôi trong Python.Đọc hex với python float chính xác kép
Khi tôi cố gắng giải nén như sau:
unpack('d', "4081637ef7d0424a");
tôi nhận được lỗi sau:
struct.error: unpack requires a string argument of length 8
này không làm cho rất nhiều ý nghĩa với tôi bởi vì một đôi dài 8 byte, và
2 nhân vật = 1 giá trị hex = 1 byte
01.Vì vậy, về bản chất, một đôi 8 byte dài sẽ là một chuỗi ký tự 16 ký tự.
Bất kỳ con trỏ nào về việc giải nén hex này thành gấp đôi sẽ được đánh giá cao.
"Chuỗi" được mong đợi bởi 'struct.unpack' không phải là một chuỗi hex, đó là các byte thô. Trong Python3, nó sẽ là 'byte', không phải' str'. Sử dụng 'bytearray.fromhex' hoặc chỉ' str.decode', xem câu trả lời của Sven Marnach. – L3viathan