我有一個字節串"\x56\x20"
,它是兩組數據,一個(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
>>>
有沒有更清潔的方法?
如果'\ x56 \ x20'要在12位和4位部分分割,則得到1378和0,*不是* 86和2 ..除非這是小的-endian,因此應該被解釋爲'\ x20 \ x56'。 –
好點,我只是看着十六進制編輯器中的原始字節,所以是的,它看起來應該是\ x20 \ x56。 – monkut