1
두 개의 숫자 X = 0xABC가 있다고 가정 해 보겠습니다. Y = 0xDE. Z에 대해 CRC-32를 계산하려고합니다. X는 Y와 연결되어 있습니다 (즉, Z = 0xABCDE).CRC-32 결과를 결합하는 방법은 무엇입니까?
나는 CRC (X)와 CRC (Y)를 사용할 수 있습니다. CRC (Z)는 어떻게 계산합니까?
두 개의 숫자 X = 0xABC가 있다고 가정 해 보겠습니다. Y = 0xDE. Z에 대해 CRC-32를 계산하려고합니다. X는 Y와 연결되어 있습니다 (즉, Z = 0xABCDE).CRC-32 결과를 결합하는 방법은 무엇입니까?
나는 CRC (X)와 CRC (Y)를 사용할 수 있습니다. CRC (Z)는 어떻게 계산합니까?
crc32_combine()
을 zlib에서 살펴보십시오.
기본적인 아이디어는 CRC의 선형성을 사용하는 것입니다. 0xABC00
의 CRC는 0x000DE
과 배타적이며 - 해당 CRCs의 배타적 논리합입니다. 사전 및 사후 처리 (독자가 추출해야하는 이유로 할 수 있음)를 무시하면 앞에 오는 0은 CRC를 변경하지 않으므로 0xDE
의 CRC는 0x000DE
의 CRC와 같습니다. CRC가 일 때 0xABC00
의 CRC를 얻으려면 0을 더하는 효과를 계산하면됩니다. 그런 다음 두 개의 CRC를 배제하십시오.
crc32_combine()
Google 그룹 [[link] (https://groups.google.com/forum/#!topic/comp.compression/SHyr5bp5rtc)에서 귀하의 답변을 읽었습니다. 내가 직면하고있는 문제는 하드웨어 (FPGA)에서 구현하려고하는 것입니다. ** 0xABC ** 및 ** 0xDE **에 대한 병렬 CRC-32 계산기가 있지만 ** 0xABC00 ** 및 ** 0x000DE **를 통해 CRC-32를 계산하려고하면 CRC를 XOR 한 다음 ZEROS 때문에 잘못된 결과. – Tushar