Сведения о вопросе

Gaukhar

16:03, 1st July, 2020

Теги

Преобразование байтов в числа с плавающей запятой в Python

Просмотров: 566   Ответов: 3

У меня есть двоичный файл, который я должен разобрать, и я использую Python. Есть ли способ взять 4 байта и преобразовать их в одно точное число с плавающей запятой?



  Сведения об ответе

PIRLO

18:03, 1st July, 2020

>>> import struct
>>> struct.pack('f', 3.141592654)
b'\xdb\x0fI@'
>>> struct.unpack('f', b'\xdb\x0fI@')
(3.1415927410125732,)
>>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0)
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@'


  Сведения об ответе

9090

18:03, 1st July, 2020

Вам понадобится пакет struct .


  Сведения об ответе

davran

18:03, 1st July, 2020

Просто небольшое дополнение, если вы хотите, чтобы число с плавающей точкой было выведено из метода unpack вместо кортежа, просто напишите

>>> [x] = struct.unpack('f', b'\xdb\x0fI@')
>>> x
3.1415927410125732

Если у вас есть еще поплавки то просто напишите

>>> [x,y] = struct.unpack('ff', b'\xdb\x0fI@\x0b\x01I4')
>>> x
3.1415927410125732
>>> y
1.8719963179592014e-07
>>> 


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться