我想解析并拆分从车辆CAN读取的十六进制字节数组。整个64位都读为bytearray(b'\xa0\xc6\xa6\xc2\x06\xe3)B')
,我想根据位的位置将其拆分。例如,我需要101000
的前6位。
基于从这里的一些阅读,我已经完成了从十六进制字节数组到二进制字符串的转换,并成功解析了它。我目前的方法是:
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])
由于我需要处理大量的高速数据传输,因此我想知道是否有比我目前采用的方法更快的方法?