문제

나는 네트워크 메시지의 나머지 비트를 확인하기 위해 주기적 중복성 검사에서 나머지 XOR 알고리즘을 계산하기 위해 수학이 어떻게 해결되었는지 기억하려고 노력하고 있습니다.

나는 그 교과서를 던져서는 안됩니다.

이것은 코드에서 쉽게 수행되지만 어떻게 손으로 해결됩니까?

나는 그것이 표준 디비전 알고리즘처럼 보인다는 것을 알고 있지만, 나머지를 얻기 위해 거기에서 어디로 가야할지 기억할 수 없습니다.

      ___________
1010 | 101101000

메모: 나는 Google을 만들었지 만 나머지를 파악하는 단계를 맵핑 한 곳을 찾을 수 없었습니다.

도움이 되었습니까?

해결책

이진 11의 긴 분열입니다. 예가 있습니다. 위키 백과.

다른 팁

1010 | 101101000
       1010
       0001 this result is 1011 XOR 1010 = 0001
          1010
          1010
          0000  thus no remainder. 

따라서 101101000은 완벽하고 변속기/수신에서 오류가 발생하지 않았습니다.

내 경험상 손으로 계산할 때, 특히 제로가 많이있을 때 다항식으로 변환하는 것이 더 쉽습니다.

1010 = 1*x^3 + 0*x^2 + 1*x^1 + 0*x^0 = x^3 + x = x3 + x
101101000 = x8 + x6 + x5 + x3

       -------------------
x3 + x ) x8 + x6 + x5 + x3

그럼 당신 나누십시오 가장 큰 용어 배당에서 (x^8) 이랑 첫 학기 제수에서 (x^3), 를 야기하는 x^5. 당신은 그 숫자를 맨 위에 올려 놓았습니다 곱하다 제수의 각 용어에 따라. 이것은 첫 번째 반복에 대해 다음을 산출합니다.

        x5
       -------------------
x3 + x ) x8 + x6 + x5 + x3
         x8 + x6

각 학기마다 XOR을 수행 한 다음 새 배당금을 산출합니다. x5 + x3:

        x5
       -------------------
x3 + x ) x8 + x6 + x5 + x3
         x8 + x6
       -------------------
         x5 + x3

배당금의 가장 큰 용어가 디바이저의 가장 큰 용어보다 작을 때까지 동일한 패턴을 따르십시오. 계산이 완료되면 다음과 같습니다.

        x5 + x2
       -------------------
x3 + x ) x8 + x6 + x5 + x3
         x8 + x6
       -------------------
         x5 + x3
         x5 + x3
       -------------------
         0

이 경우 알림은 0이므로 전송 중에 오류가 발생하지 않았을 가능성이 높습니다.

참고 : 단축되었습니다 x^y ~처럼 xy 위의 예에서는 답의 혼란을 줄이기 위해 수학 방정식 형식을 지원하지 않기 때문에 답변의 혼란을 줄입니다.

Note2 : 배당에서 제수의 배수를 추가/빼면 알림 0도 제공됩니다. (P(x) + a*C(x)) / C(x) = P(x)/C(x) + a*C(x)/C(x) 동일한 알림을 제공합니다 P(x)/C(x) 알림 이후 a*C(x)/C(x) 0입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top