首页 > 解决方案 > 在 python 中解析和拆分十六进制字节数组

问题描述

我想解析和拆分从车辆 CAN 读取的十六进制字节数组。整个 64 位被读取为bytearray(b'\xa0\xc6\xa6\xc2\x06\xe3)B'),我想根据位位置对其进行拆分。例如,我需要101000.

根据这里的一些阅读,我已经完成了从十六进制字节数组到二进制字符串的转换,并成功解析它。我目前的做法是:

orig_data = bytearray(b'\xa0\xc6\xa6\xc2\x06\xe3)B')

def hex2bin(hex_string):
    scale = 16  
    num_of_bits = 8
    return bin(int(hex_string, scale))[2:].zfill(num_of_bits)

bin_str = hex2bin(bytes(orig_data).hex())

print(bin_str[:6])

由于我需要处理大量的高速数据传输,我想知道是否有比我目前采用的方法更快的方法来做到这一点?

标签: pythonstringsplithex

解决方案


推荐阅读