[an error occurred while processing this directive] [an error occurred while processing this directive]
Все эти XORы и сдвиги - не что иное, как деление. Но только не обычное,
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено konst 02 октября 2001 г. 14:30
В ответ на: Расчет CRC отправлено TG 02 октября 2001 г. 11:22

а деление многочленов. Последовательность битов данных рассматривается
как коэффициэнты многочлена. Например, байту 11001011 можно поставить
в соответствие многочлен x^7+x^6+x^3+x^1+1. Действия над коэффициэнтами подчиняются арифметике поля Галу GF(2). На самом деле
это очень просто - a+b = a XOR b, a-b= a XOR b (т.е. не отличается
от сложения), a*b=a AND b. Напомню, a и b принимают значения либо 0,
либо 1.
Вся последовательность вычисления CRC - это деление такого длинного
многочлена, образованного последовательностью битов данных, на фиксированный образующий многочлен. В качестве CRC берется остаток от этого деления, а частное никого не волнует. Т.е. длина CRC определяется степенью образующего многочлена (степень остатка всегда меньше степени делителя). Например, для CRC8 используется образующий многочлен 8 степени.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru