#python #hex #byte
#python #шестнадцатеричный #байт
Вопрос:
Я получаю строку, которая формируется из сообщений разных типов. Меня интересует сообщение, которое до появления в строке было в format bytearray
, но теперь приходит в format str
. Например, мне нужно перевести 001bc5045000043a
, полученное в str format
, в формат byteray, сохранив числа из этой последовательности в bytearray.
Ответ №1:
Чтобы преобразовать строку из шестнадцатеричных цифр в bytearray, предполагая две шестнадцатеричные цифры на байт, используйте bytearray.fromhex:
>>> h = '001bc5045000043a'
>>> ba = bytearray.fromhex(h)
>>> ba
bytearray(b'x00x1bxc5x04Px00x04:')
Python будет представлять байты как эквивалентный символ ASCII, если байт находится в диапазоне ASCII (0-127 / 0 — 0x7f) и символ доступен для печати, следовательно, 0x3a отображается как ‘:’
>>> chr(int('3a', 16))
':'
Комментарии:
1. и 0x50 отображается как ‘P’?