Python:将2个int转换为32个float

Gab*_*iMe 6 python

如何将2个整数组合到一个32位IEEE浮点?(2个整数中的每个代表16位)并且方向相反:如何将python float转换为2个16位整数?

(我需要这个因为modbus协议 - 其中2x16位寄存器被视为单个32个浮点数)

Ale*_*dro 5

该代码将 16 位整数 i1 和 i2 转换为浮点数 3.14,反之亦然。

from struct import *
# Two integers to a floating point
i1 = 0xC3F5
i2 = 0x4840
f = unpack('f',pack('>HH',i1,i2))[0]

# Floating point to two integers
i1, i2 = unpack('>HH',pack('f',3.14))
Run Code Online (Sandbox Code Playgroud)