Tomsk Sysadmins Forum
Windows => Программирование => Topic started by: zatim on July 31, 2006, 18:42:22
-
Подскажите пожалуйста! Как рассчитать CRC для массива байт?
-
Подскажите пожалуйста! Как рассчитать CRC для массива байт?
См. прилагаемый файл.... это конечно на Pascal...
ftp://apollo.chtd.tpu.ru/pub/lang/delphi/UCrc32.pas (http://ftp://apollo.chtd.tpu.ru/pub/lang/delphi/UCrc32.pas)
-
Прошу прощения, но я не уточнил - мне нужно вычислить 8-разрядный CRC. Причем желателен алгоритм, который будет под силу не очень шустрому микроконтроллеру. Однако спасибо за ссылку.
-
Прошу прощения, но я не уточнил - мне нужно вычислить 8-разрядный CRC. Причем желателен алгоритм, который будет под силу не очень шустрому микроконтроллеру. Однако спасибо за ссылку.
Массив то большой? Если больше чем пара байт то лучше использовать CRC16. Он позволяет определить больше ошибок.
Для микроконтроллера лучше использовать табличный алгоритм.
http://www.atmel.com/dyn/products/app_note...p?family_id=607 (http://www.atmel.com/dyn/products/app_notes.asp?family_id=607)
Здесь погляди. Написано достаточно подробно.
код на с можно посмотреть здесь
http://www.koders.com/?s=CRC16&_%3Abtn=Sea...la=Cpp&_%3Ali=* (http://www.koders.com/?s=CRC16&_%3Abtn=Search&_%3Ala=Cpp&_%3Ali=*)
табличный метод вычисления например здесь
http://www.koders.com/cpp/fid0A9479AF3176D...3B.aspx?s=CRC16 (http://www.koders.com/cpp/fid0A9479AF3176D44957BE3566AFF55F4AA5E8CD3B.aspx?s=CRC16)
Для табличного метода тебе нужно где-то разместить массив 512 байт. Но это самый быстрый метод.