тут вот из документации по модбас было найдено следующее:
Алгоритм генерации CRC (в режиме RTU):
1. 16-ти битовый регистр загружается числом FF hex (все 1), и используется далее как регистр CRC.
2. Первый байт сообщения складывается по ИСКЛЮЧАЮЩЕМУ ИЛИ с содержимым регистра CRC. Результат помещается в регистр CRC.
3. Регистр CRC сдвигается вправо (в направлении младшего бита) на 1 бит, старший бит заполняется 0.
4. (Если младший бит 0): Повторяется шаг 3 (сдвиг)
(Если младший бит 1): Делается операция ИСКЛЮЧАЮЩЕЕ ИЛИ регистра CRC и полиномиального числа A001 hex.
5. Шаги 3 и 4 повторяются восемь раз.
6. Повторяются шаги со 2 по 5 для следующего сообщения. Это повторяется до тех пор пока все байты сообщения не будут обработаны.
7. Финальное содержание регистра CRC и есть контрольная сумма.
РАЗМЕЩЕНИЕ CRC В СООБЩЕНИИ( в режиме RTU)
При передаче 16 бит контрольной суммы CRC в сообщении, сначала передается младший байт, затем старший (14 и 15 байт соответственно).
Помогите пожалуйста написать код (процедурку) обработки 112-битной строки для вычесления ее контрольной суммы.