Как мне реализовать CRC16 с пользовательским полиномом в Javascript? - PullRequest
0 голосов
/ 25 апреля 2018

Фон

Мне нужно реализовать CRC16 с пользовательским полиномом в Javascript.

Исследование

После поиска в нескольких модулях NPM и в этом вопросе SO (а также во всехссылки, предлагаемые в комментариях):

Я до сих пор не являюсьближе к моей цели.

Проблема

Моя проблема в том, что, хотя у меня есть код, я не могу понять, как повторно использовать данное решение CRC16, потому что я не знаюгде найти полиномиальное определение в коде.Со всеми изменениями и тому подобным для меня это просто слишком загадочно.

Вопрос

Как я могу использовать функцию CRC16 с пользовательским полиномом?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

В связанном примере есть таблица , полученная из полинома CRC.Конечно, вы можете найти код , который генерирует таблицу , учитывая полином.Вы можете найти код, который вычисляет любой CRC, и код, который генерирует код CRC , включая таблицу, с учетом определения CRC (полином, упорядочение битов, начальное значение, конечное значение xor).

0 голосов
/ 25 апреля 2018

Ответ

Это буквально невозможно.

Согласно моему пониманию, используемый полином определяет саму суть самого алгоритма CRC.

В большинстве случаев две разные реализации CRC16 с разными функциями - это 2 совершенно разных алгоритма.

Моя путаница была создана многими библиотеками, плохо документированными, в которых авторы не упоминают версию реализуемого ими алгоритма CRC16, называя свои модули модулем crc16 .

Этого нет. Вместо этого существует множество алгоритмов CRC16, каждый из которых имеет разные полиномы, которые можно использовать.

...