2014-01-31 55 views
0

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

+4

取决于。预期结果是8192还是32? – Carsten

+0

@Carsten 32是预期结果。 – Dean

+1

下面的答案相应地改变了 –

回答

6

如果您的输入是[0x20, 0x00],那么你可以做(arr[1]<<8)|arr[0]

如果你的输入是["0x20", "0x00"],那么你可以做int(arr[1],16)<<8)|int(arr[0],16)

3

这也适用于:

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

struct模块是相当通用的,它可以在类似的情况下使用,并且它需要4个字节或8字节的整数尽快变得方便。