python 2.7 - 将float转换为字节并循环遍历字节

时间:2015-07-27 14:45:29

标签: python serial-port byte

我正在尝试通过串行发送一个4字节的浮点数。 我的代码看起来像这样:

ser.write(b'\xcd') #sending the byte representation of 0.1
ser.write(b'\xcc')
ser.write(b'\xcc') 
ser.write(b'\x3d')

但我希望能够发送一个仲裁浮动。

我也希望能够单独检查每个字节,所以这不会例如:

bytes = struct.pack('f',float(0.1))
ser.write(bytes)

因为我想检查每个字节。

我正在使用python 2.7 我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以使用struct模块将浮点数打包为二进制数据。然后循环遍历bytearray的每个字节并将它们写入输出。

import struct

value = 13.37  # arbitrary float 
bin = struct.pack('f', value)

for b in bin:
    ser.write(b)