我有一个16位进入USB的无符号整数,这些整数在我的列表中显示为2个字节,例如返回,例如[0x20, 0x00]
。我如何将它们组合成python中的数字?
答案 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字节整数就可以很方便。