将int转换为16位无符号short

时间:2014-11-27 13:08:47

标签: python

我想在Python中将整数修剪为16字节字(无符号短整数)。像下面这样的东西不起作用

word = array("H")
word.insert(0,0x19c6acc6)

2 个答案:

答案 0 :(得分:4)

使用ctypes.c_ushort

>>> import ctypes
>>> word.insert(0, ctypes.c_ushort(0x19c6acc6).value)
>>> word
array('H', [44230])

如果NumPy可用,那么:

>>> numpy.ushort(0x19c6acc6)
44230

答案 1 :(得分:4)

经典方法是使用掩码提取相关位:

>>> hex(0x19c6acc6 & 0xffff)
'0xacc6'