2014-03-27 5 views
0

이 문서를 이해하려고 시도하지만 올바르게 이해할 수 없습니다. http://www.ross.net/crc/download/crc_v3.txtCRC 다항식 계산

알고리즘을 계산하는 데 사용되는 알고리즘은 무엇입니까?

나는 그것이 XOR을 사용한다고 생각했지만, 그가 얻는 방법을 이해하지 못했습니다. 0110에서 1100 XOR 1001. 101 (또는 비트가 작아지면 0101 또는 1010)이어야합니다. 내가 이걸 얻을 수 있다면, 나머지는 쉬울 것이라고 생각하지만, 어떤 이유로 나는 그것을 얻지 못한다. 이 이진수에서 수행된다는 점을 제외하고는, 초등학교에서 배운처럼

9= 1001) 0000011000010111 = 0617 = 1559 = DIVIDEND 
DIVISOR 0000.,,....,.,,, 
      ----.,,....,.,,, 
      0000,,....,.,,, 
      0000,,....,.,,, 
      ----,,....,.,,, 
      0001,....,.,,, 
      0000,....,.,,, 
      ----,....,.,,, 
      0011....,.,,, 
      0000....,.,,, 
      ----....,.,,, 
       0110...,.,,, 
       0000...,.,,, 
       ----...,.,,, 
       1100..,.,,, 
       1001..,.,,, 
       ====..,.,,, 
       0110.,.,,, 
       0000.,.,,, 
       ----.,.,,, 
       1100,.,,, 
       1001,.,,, 
       ====,.,,, 
        0111.,,, 
        0000.,,, 
        ----.,,, 
        1110,,, 
        1001,,, 
        ====,,, 
        1011,, 
        1001,, 
        ====,, 
        0101, 
        0000, 
        ---- 
         1011 
         1001 
         ==== 
         0010 = 02 = 2 = REMAINDER 

답변

2

당신이 인용 된 부분은 표준 길이 사업부입니다. 각 단계에서 나머지를 얻기 위해 빼기를 수행합니다. 예를 들면 1100에서 1001 = 0110까지입니다.

이 기사에서는 예비 예제로 이것을 사용하고 있습니다. CRC를 계산할 때 수행됩니다. 정상 수 대신에, CRC는 GF (2) 필드에 대한 다항식의 나눗셈을 사용합니다. 이것은 감산 대신 XOR을 사용하는 것을 제외하고는 보통 이진수를 사용하고 장시간 나누기를 사용하여 모델링 할 수 있습니다.

+0

에 그리고 여기에 내가 반 시간이 다른 번호에 배타적 논리합을 연산을 만들기위한 앉아 : 나는 단계를 주석. –

1

제공 한 링크는 말한다 :

우리가

당신은 단지 반복 빼기 (?) 기억이 좋은 'ol 당신 학교에서 배운 긴 분할을 사용하여 분할을 다하겠습니다, 바이너리이기 때문에 두 가지 옵션 만 있습니다 : 현재 선택에서 한 번만 또는 0 번 중 하나를 선택합니다.

0000011000010111 
0000 
1001    x 0 
---- - 
0000 
1001   x 0 
---- - 
    0001 
    1001   x 0 
    ---- - 
    0011 
    1001   x 0 
    ---- - 
    0110 
    1001   x 0 
    ---- - 
    1100  
    1001  x 1 
    ---- - 
     0110 
     1001  x 0 
     ---- - 
     1100 
     1001  x 1 
     ---- - 
     0110