Расчет CRC на примере - PullRequest
       5

Расчет CRC на примере

4 голосов
/ 14 февраля 2011

Я хотел бы подтвердить, правильно ли я понял концепцию вычислений CRC.Я приведу два примера: первый - это вычисление остатка с использованием нормального вычитания, второй - использование этого странного материала XOR.

Биты данных: D = 1010101010.
Биты генератора: G = 10001.

1) Метод вычитания для вычисления остатка:

10101010100000
10001|||||||||
-----|||||||||
  10001|||||||
  10001|||||||
  -----|||||||
  000000100000
         10001
         -----
          1111

R = 1111.

2) Подход XOR:

10101010100000
10001|||||||||
-----|||||||||
  10001|||||||
  10001|||||||
  -----|||||||
  00000010000|
        10001|
        ------
        000010

R = 0010.

Ответы [ 3 ]

2 голосов
/ 18 ноября 2012

Добавление 1111 в конце не удовлетворяет потребности, так как

10927% 17! = 0

.

Обратите внимание, что согласно определению, деление должно быть делением по модулю, так как оно основано на математике по модулю.

1 голос
/ 15 июля 2011

Оба ответа верны. =) * * Тысяча одна

(Чтобы перепроверить первый ответ:
10101010100000 (двоичный), мод 10001 (двоичный)
= 10912 (десятичное число) мод 17 (десятичное число)
= 15 (десятичное число)
= 1111 (двоичный).)

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

Вычитание сделано неправильно.В двоичном модуле вычитание, сложение, деление и умножение одинаковы.Итак, XOR - это правильно.

...