Разобрать и разбить шестнадцатеричный байтовый массив в python - PullRequest
0 голосов
/ 06 июня 2019

Я хотел бы проанализировать и разбить шестнадцатеричный байтовый массив, считанный с CAN автомобиля.Все 64 бита были прочитаны как bytearray(b'\xa0\xc6\xa6\xc2\x06\xe3)B'), и я хотел бы разделить его на основе битовых позиций.Например, мне нужны первые 6 бит 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])

Поскольку мне нужно иметь дело с огромным количеством данных, передаваемых с высокой скоростью, мне было интересно, есть ли более быстрый способ сделать это, чем текущий подход, который я принял?

...