2015-02-12 2 views
1

Для следующих python кодов:питона конвертировать ByteArray номера в списке

pt = bytearray.fromhex('32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34') 
state = bytearray(pt) 

Если я использую:

print state 

Он выдает 2Cö¨ˆZ0?11˜¢à74

Тогда как восстановить содержимое в bytearray? Например, чтобы поместить их в список, например [].

+0

Возможный дубликат http://stackoverflow.com/questions/25259947/convert-variable-sized-byte-array-to-a-integer-long –

ответ

2

Индексирование bytearray приводит к неподписанным байтам.

>>> pt[0] 
50 
>>> pt[5] 
90 
0

Вы можете сделать свой собственный метод с помощью простых строковых методов:

string = '32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34' 
number = [int(i, 16) for i in string.split()] 

Теперь у вас есть список преобразованных чисел, как вы хотели.

0

Вы можете преобразовать между bytearray и списком, используя python , встроенный в функции с тем же именем.

>>> x=[0,1,2,3,4]  # create a list 
>>> print x 
[0, 1, 2, 3, 4] 
>>> y = bytearray(x) # convert the list to a bytearray  
>>> print y 
(garbled binary)    <-- prints UGLY! 
>>> z = list(y)  # convert the bytearray back into a list 
>>> print z 
[0, 1, 2, 3, 4]   
Смежные вопросы