Перейти к содержанию

Обсуждение:Реализации алгоритмов/Циклический избыточный код

Содержимое страницы недоступно на других языках.
Добавить тему
Материал из Викиучебника — открытых книг для открытого мира

Все представленные алгоритмы неверны. Списывают друг у друга эти алгоритмы как обезьянки, не давая себе труда разобраться в его сути.

Вектор инициализации CRC должен быть не 0 и не 0xFF(FF...).

Вектор инициализации CRC это 0xFF(FF...) прокрученный один раз через 8 (или 16, или 32) циклов алгоритма. Например, для CRC8 с полиномом 0x31 вектор инициализации равен 0xAC.

Естественно, это верно только для ускоренных версий реализации CRC, которые пропускают первые 8 (16, 32) циклов с начальным значением 0xFF(FF...). Среди представленных алгоритмов к ускоренным относятся абсолютно все. Anpaza (обсуждение) 23:44, 5 ноября 2014 (UTC)Ответить

Так поправьте, чтобы было правильно. В этом и сила технологии wiki, что можно и нужно исправлять ошибки других. Oleg3280 (обсуждение) 10:54, 6 ноября 2014 (UTC)Ответить

Последний алгоритм (генерация таблицы) явно некорректен - полином ни разу не будет заксорен. Кажется, для правильности надо _crc = x<<(32-8), но я не уверен. Ddiver (обсуждение) 20:51, 15 февраля 2016 (UTC)Ответить