Я пытаюсь преобразовать набор из 2 16-разрядных целых чисел в одно 32-битное число с плавающей запятой. Это для моей работы по протоколу связи MODBUS. Мой запрос - то же самое, что указано herePython: Convert 2 ints to float
Однако, когда я следую подходу pack/unpack, предоставленному там, я не получаю подобных результатов.
Вот моя тестовая программа:
from struct import *
tup=(16256, 0)
print hex(tup[0])
print hex(tup[1])
mypack = pack('>HH',tup[0],tup[1])
print mypack
f = unpack('f', mypack)[0]
print f
И выход, как показано ниже:
0x3f80
0x0
?
4.60060298822e-41
Я ожидаю, что конечный результат будет на самом деле просто «1,0», как точка интерпретации плавающего " 0x3F800000 'это просто!
Я запускаю этот код на доске Beagle Bone Black с операционной системой Debian.
Куда я иду не так?