我有一个 bytestring "\x56\x20"
,它是两组数据,a(12 位)和 b(4 位)。
解压后的数据预计为:
a = 86 b = 2
在哪里:
a = int("056", 16)
b = int("2", 16)
我知道我可以binascii
用来将字节字符串转换为十六进制字符串,然后对其进行切片魔法,但这看起来很混乱。
我看了看,struct
但想不出一种方法来拆分 12 位/4 位。
>>> import binascii
>>> two_octets = "\x56\x20"
>>> hex_str = binascii.hexlify(two_octets)
>>> temp_a, temp_b = hex_str[:2], hex_str[2:]
>>> a_part, b_part = reversed([c for c in temp_b])
>>> int(a_part + temp_a, 16)
86
>>> int(b_part, 16)
2
>>>
有没有更清洁的方法?