Я пытаюсь реализовать генератор значений 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)
Я сделал то же самое с последовательными данными, которые работали нормально.