2011-09-01 319 views
6

我試圖理解CRC,我越來越困惑如何計算'除數'。CRC除數計算

example on wikipedia除數爲11(1011)爲11010011101100

11010011101100 000 <--- input left shifted by 3 bits 
1011    <--- divisor (4 bits) = x³+x+1 
------------------ 
01100011101100 000 <--- result 

輸入如何被除數計算的?在這個例子中(x 3 + x + 1)x是2? 2從哪裏來?

+2

二進制中的除數只是它的多項式的係數。 'x^3 + x + 1'等於'1 * x^3 + 0 * x^2 + 1 * x + 1 * 1';閱讀關卡獲得1-0-1-1 – Nemo

回答

1

從同一個維基百科的「CRC數學」部分啓動「這種分工樣過程的數學分析揭示瞭如何挑選,保證良好的無差錯除數檢測屬性「。這是它的關鍵。有些因子比其他因子好,所以你只需找到一個標準的因子,然後使用它。

該頁面的底部描述了一些使用的不同CRC和定義其除數的多項式。

0

這是寫在接下來的一句@wikipedia:

如果最左邊的除數位上方輸入位爲0,什麼也不做。如果最左邊的除數位上方的輸入位爲1,則除數與輸入異或。

這意味着:

1101 xor 1011 => 0110 
-2

二進制除數只是其多項式的係數。 x^3 + x + 1 = 1 * x^3 + 0 * x^2 + 1 * x + 1 * 1;讀取關鍵字得到1 0 1 1

             maninder singh walia walia