无符号整数16位小端到Python变量

时间:2014-01-31 09:53:15

标签: python python-2.7

我有一个16位进入USB的无符号整数,这些整数在我的列表中显示为2个字节,例如返回,例如[0x20, 0x00]。我如何将它们组合成python中的数字?

2 个答案:

答案 0 :(得分:6)

如果您的输入为[0x20, 0x00],则可以(arr[1]<<8)|arr[0]

如果您的输入为["0x20", "0x00"],则可以int(arr[1],16)<<8)|int(arr[0],16)

答案 1 :(得分:3)

这也有效:

>>> import struct
>>> struct.unpack('<H', ''.join(map(chr, [0x20, 0x00])))[0]
32

struct模块非常通用,它可以在类似情况下使用,只要需要4字节或8字节整数就可以很方便。