Самый низкий показатель полинома CRC - PullRequest
0 голосов
/ 11 ноября 2018

Я никогда не видел полином CRC без наименьшего члена x⁰ = 1.

Есть ли исключения, которые я еще не видел?Почему все полиномы CRC имеют наименьший член x⁰?

1 Ответ

0 голосов
/ 12 ноября 2018

Полином CRC вида x n + ... + x 0 используется для бит CRC (он используется с делением битов данных без заимствования на Полином CRC, который производит остаток n битов (CRC). Если полином CRC имеет вид x n + ... + x 1 (нет x 0 терма), то он фактически является n-1 бит CRC.

Однако существуют случаи, когда общий код может использовать разные таблицы для быстрых вычислений 32-битных или 16-битных CRC, где единственным отличием в основной части кода являются константы. Код написан так, как если бы CRC имел вид x 32 + ... + x 0 , но для того, чтобы большая часть того же кода генерировала 16-битный CRC, полином имеет форму х 32 + ... + х 16 . Выполняется корректировка последнего шага, чтобы сдвинуть окончательный CRC вправо на 16 бит, чтобы поместить 16-битный CRC в правильные биты. Примером этого является пример с 500+ строками быстрой сборки crc32 / 16 , в котором используется pclmulqdq insruction (умножение без переноса), который в этом случае настроен для получения 16-битного CRC.

...