crc16 예제

아래 표에는 사용 중다양한 알고리즘의 다항식만 나열되어 있습니다. 특정 프로토콜의 변형은 위에서 설명한 바와 같이 사전 반전, 반전 및 역반전 비트 순서를 부과할 수 있습니다. 예를 들어 Gzip 및 Bzip2에 사용되는 CRC32는 동일한 다항식을 사용하지만 Gzip은 역비트 순서를 사용하지만 Bzip2는 사용하지 않습니다. [12] 지금까지 하나의 바이트만 입력 데이터로 사용되었으므로 입력 데이터가 바이트 배열로 확장되면 어떻게 되는지 살펴보겠습니다. 첫 번째 함수 Compute_CRC8_Simple_OneByte_ShiftReg() 쉽게 적응할 수 있습니다(입력 매개 변수만 0x00 바이트가 추가되는 바이트 배열이 될 수 있음)하지만 Compute_CRC8_Simple_OneByte()는 어떻습니까? 흥미로운 점은 두 바이트 사이의 경계에 있습니다: 한 바이트가 완전히 처리되면 후속 바이트가 계산 프로세스에 어떻게 통합되는가? 다시 말하지만 간단한 예제(더 많은 수동 CRC 계산 작업!): CRC 계산뒤에 있는 아이디어는 데이터를 하나의 큰 이진 번호로 보는 것입니다. 이 숫자는 특정 값으로 나누며 나머지 계산은 CRC라고 합니다. CRC 계산을 처음에 나누면 많은 컴퓨팅 성능이 소모되는 것처럼 보이지만 학교에서 배운 것과 유사한 방법을 사용하면 매우 빠르게 수행 할 수 있습니다. 예를 들어 이진 표기어에서 1101101인 문자 `m`의 나머지 부분을 19 또는 10011로 나누어 계산합니다. 19는 홀수입니다. 이것은 우리가 더 볼 수 로 필요합니다.

여기에 바이너리 계산 방법은 당신이 어렸을 때 배운 소수점 방법과 매우 다르지 않다로 교과서를 참조하십시오. 조금 이상하게 보일 수도 있습니다. 또한 표기법은 국가마다 다르지만 방법은 비슷합니다. 이는 다항식표현에만 영향을 미칩니다. 그러나 요점은 각각의 경우에 동일한 다항식계산에 사용된다는 것입니다. 자주 사용되는 CRC-16 다항식 x^16 + x^12 + x^5 + 1을 고려하십시오. 바이너리에서, 그건 1 0001 0000 0010 0001. 이 예제의 세 가지 다른 표현: 세 가지 유형의 CRC 계산에 대해 사용 가능한 소프트웨어 라이브러리를 사용할 수 있습니다. 테스트 프로그램은 파일이나 문자열을 테스트하는 데 직접 사용할 수 있습니다.

Shares

Posted on 2nd August 2019 in Uncategorised

Share the Story

About the Author

Back to Top
Shares