如何将2个整数组合到一个32位IEEE浮点?(2个整数中的每个代表16位)并且方向相反:如何将python float转换为2个16位整数?
(我需要这个因为modbus协议 - 其中2x16位寄存器被视为单个32个浮点数)
该代码将 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)
| 归档时间: |
|
| 查看次数: |
2673 次 |
| 最近记录: |