Цитата Сообщение от Vslav Посмотреть сообщение
Я вижу отличие в том что каждый новый бит данных добавляется в СТАРШИЙ разряд сдвигового регистра.
Биты вообще не добавляются.

Аппаратный алгоритм такой:

1. 16-разрядный регистр CRC сдвигается влево, старший разряд при этом выходит в триггер.
2. Выход триггера бывшего старшего разряда CRC и старший бит сдвигового регистра ( т.е. текущий бит данных ) логически складываются и их исключающее ИЛИ управляет инверсией 0-го, 5-го и 12-го битов регистра CRC.

Вот и весь алгоритм CRC-16.

---------- Post added at 13:52 ---------- Previous post was at 13:32 ----------

Перед делением полиномов - делимое ( у нас - один бит ) сдвигается влево на кол-во разрядов, равное степени делителя ( у нас - на 16 разрядов ).