使用python将包含uint16位和uint8位的bytearray转换为十进制

2024-04-19 12:54:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力转换这些数据:

**b"\x03\x1b\x55\x0f"**

分为3个小数值,前2个是8位,即3和27 而另两个我想转换成16位,结果是0xf55(十进制=3925)

我怎样才能在Python3中做到这一点? 我被困在这里了

val = binascii.unhexlify(val)
val = array.array("B",val)

如果数组是十六进制的,这将导致[3,27,85,15]或[0x03,0x1b,0x55,0x0f]。你知道吗

谢谢你的帮助


Tags: 数据val数组arraypython3数值x1bx03
2条回答

没关系,找到答案了

是的 (256*15)+85

解决此问题的Python代码是:

>>> from struct import unpack
>>> ans = unpack('<bbh', b'\x03\x1b\x55\x0f')
>>> print(ans)
(3, 27, 3925)

前导“<;”表示表示单词/dword的字节是小尾数。你知道吗

相关问题 更多 >