Кто может пояснить как работает этот алгоритм подсчета контрольной суммы? - C (СИ)
Формулировка задачи:
unsigned long Crc32(unsigned char *buf, unsigned long len)//Алгоритм расчета CRC
{
unsigned long crc_table[256];
unsigned long crc;
for (int i = 0; i < 256; i++)
{
crc = i;
for (int j = 0; j < 8; j++)
crc = crc & 1 ? (crc >> 1) ^ 0xEDB88320UL : crc >> 1;
crc_table[i] = crc;
};
crc = 0xFFFFFFFFUL;
while (len--)
crc = crc_table[(crc ^ *buf++) & 0xFF] ^ (crc >> 8);
return crc ^ 0xFFFFFFFFUL;
};
Просто построчно написать комментарии и всё
Решение задачи: «Кто может пояснить как работает этот алгоритм подсчета контрольной суммы?»
textual
Листинг программы
printf("c = %X\n", Crc32("123456789", 9));