2011-02-14 48 views
4

我想確認我是否正確掌握了CRC計算的概念。我將提供兩個例子,第一個是使用正常減法計算餘數,第二個使用這個奇怪的XOR東西。通過示例的CRC計算

數據位:d = 1010101010.
發電機位:ģ 10001 =

1)減法計算法計算其餘:

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

- [R = 1111

2)XOR方法:

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

- [R = 0010

+0

我應該附上問題,好吧:CRC使用XOR方法,對不對?我是否正確執行XOR示例? – NameZero912 2011-02-14 17:44:15

回答

1

兩個答案是正確的。 =)

(以重新檢查第一個答案:
10101010100000(二進制)MOD 10001(二進制)
= 10912(十進制)MOD 17(十進制)
= 15(十進制)
= 1111(二進制) 。)

2

在端部追加1111不滿足需要,因爲

10927%17!= 0

請注意,根據定義,劃分應該是模劃分,因爲它基於模數學。

-3

減法是錯誤的。在二進制模中,減法,加法,除法和乘法是相同的。所以XOR是正確的。

+0

乘法是不一樣的(1 * 1 = 1,其他都是0),而且除法似乎微不足道。 – Ivo 2017-04-20 22:36:16