2012-01-13 2 views
1

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

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

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

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

это 0x79

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

+0

Bitmasking возможно? – leppie

+0

Где вы получаете эти цифры? '0b11001111 => 0xCF' И это действительно то, что говорит Википедия. Возможно, вам нужно немного подкорректировать. – leppie

+1

номера взяты из RFC для ROHC – Vijay

ответ

2

Данные, как представляется, находятся в обратном двоичном формате.

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

Так ломая свои два примера:

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

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

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

yeh, это правильно, высший порядок удален, потому что он указывает тип CRC, такой как x^7 =>, что это CRC7, и этот бит не следует рассматривать. – Vijay

Смежные вопросы