Я пытаюсь перевести код этого питона на Java, но я не могу понять строки:Не могу понять код python. Попробуйте перевести на Java
crc^ord (data[idx]) << 8
и
return crc & 0xffff
Actualy, я не могу понять только часть с < и & 0xffff
Полная функция:
def calculateCRC (data):
l = len (data)
crc = 0
idx = 0
l = l - 1
while l >= 0 :
crc = crc^ord (data[idx]) << 8
idx = idx + 1
i = 8
while i != 0:
if crc & 0x8000:
crc = crc << 1^0x1021
else:
crc = crc << 1
i = i - 1
l = l - 1
return crc & 0xffff
Я знаю, что SO - бесплатный бесплатный перевод кода, но у меня есть четкий вопрос о python. So. Вы можете мне помочь?
алмас шайх имеет свой перевод, но в случае, если вы столкнулись с проблемами производительности с расчетом CRC битого на-время, есть байты-в-а-типа алгоритм для любого вкуса КПР. Этот метод, по-видимому, связан с Aram Perez, в статье IEEE Micro 1983 «Байт-расчеты CRC». PDF-файлы повсюду. Я нашел его на http://bitsavers.informatik.uni-stuttgart.de/pdf/fairchild/_appNotes/Byte-wise_CRC_Jun83.pdf –
По-видимому, метод возвращается немного дальше, чем в статью за июнь '83. По-видимому, Джон Р. Хилл опубликовал табличный подход в 1979 году. Однако я не могу найти (бесплатный) PDF этого онлайн. –