Как преобразовать элемент из bytearray () в строку - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь реализовать генератор значений crc-16 в программе Python 2.7.Для генерации crc-16 требуется строка с двухбайтовым шестнадцатеричным значением в качестве входных данных.Данные для crc хранятся в байтовом массиве.

Моя проблема в том, что я не могу переместить данные из байтового массива в строку и правильно преобразовать их.

Я пытался загружать один байт за раз в строку, пока он не имеет два байта.Я напечатал len (), который показал, что, хотя я пытался ограничить размер до 2 байт, длина len была 129.

self.binData = bytearray(toc) + bytearray(dataArray) #the data for crc
while len(temp) <2:
    temp += bytearray(self.binData[offset])
# I tried putting '.decode("utf_8")' in the end of the line above,
# but that didn't seem to work either
    print "temp is:"
    print temp
    offset+=1
print "len(temp) = %04d" %(len(temp)) #prints 129
asciiVal = temp.decode("hex")
crc16.update(asciiVal)

Я сделал то же самое с последовательными данными, которые работали нормально.

...