在Python中,将字节数组转换为整数

时间:2015-05-01 03:34:29

标签: python-3.x

我正在使用read_i2c_block_data函数从IC2设备检索数据字节。在这个数据块中是我想要显示的带符号的16位值。我可以使用以下内容正确打印出值:

print ("PC12  : %d mW" % int.from_bytes((return_data[5],return_data[6]), byteorder='little', signed=True))

尽管如此,我一直在尝试使用以下内容打印出值,但这不起作用,我不知道为什么。我很好奇为什么我不能让它工作。

print ("PC12  : %d mW" % int.from_bytes(return_data[5:6], byteorder='little', signed=True))

有谁知道我做错了什么?我想我可以在from_bytes函数中指定范围。

谢谢, 标记

1 个答案:

答案 0 :(得分:2)

return_data[5:6]返回一个数组,该数组由索引为5的单个元素组成:

>>> return_data = b'\00\01\02\03\04\05\06'
>>> return_data[5:6]
b'\x05'

由于您要转换16位整数,因此需要使用return_data[5:7]