Python: преобразовать 8-байтовое число IEEE754 в число с плавающей точкой - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть следующая 8-байтовая строка, которая является частью двоичного файла

b = b'?\xf0\x00\x00\x00\x00\x00\x00'

и я хочу преобразовать его в число с плавающей запятой (которое должно быть равно 7,371791007870371e + 05). Ни один из подходов, которые я пробовал до сих пор, не сработал:

В обоих случаях возникшие ошибки указывают на то, что строка 'b' недопустима, но я не понимаю, как это возможно, поскольку она читается прямо из двоичного файла.

1 Ответ

0 голосов
/ 30 апреля 2018

Это должно распаковать байты в двойное число (8 байтов, а не число с плавающей запятой, которое составляет 4 байта). Обратите внимание, что я использую значение из @ wim.

import struct
print(struct.unpack('d', b'\xc8[\x9a36\x7f&A')[0])
...