Преобразовать генератор полинома в двоичное число - PullRequest
2 голосов
/ 13 января 2012

У меня есть полином генератора, который должен быть преобразован в двоичное число для использования в моем коде CRC. Как, например, это те, которые преобразованы правильно, я хочу знать, как они выполняются.

Они используются для вычисления ROHC CRC:

Полином, который будет использоваться для 3-битного CRC: C (x) = 1 + x + x ^ 3

это 0x06 Полином, который будет использоваться для 7-битной CRC: C (x) = 1 + x + x ^ 2 + x ^ 3 + x ^ 6 + x ^ 7

это 0x79

хочу знать, как 0x06 и 0x79 получены из этих уравнений.

1 Ответ

2 голосов
/ 13 января 2012

Они отображаются в обратной двоичной записи.

При представлении полиномов CRC каждый член отображается в один бит. Кроме того, член высшего порядка является неявным и опущен.

Итак, разбив ваши два примера:

1 + x + x^3                    = 1101
1 + x + x^2 + x^3 + x^6 + x^7  = 11110011

Отрезание термина наивысшего порядка:

1101     -> 110      = 0x06
11110011 -> 1111001  = 0x79
...