Ответ 1
CRC32, найденный в zip, и во многих других местах использует многочлен 0x04C11DB7; его обратная форма 0xEDB88320, пожалуй, более известна, часто встречается в реализациях с маленькими концами.
CRC32C использует другой многочлен (0x1EDC6F41, обратный 0x82F63B78), но в противном случае вычисление будет таким же. Естественно, результаты разные. Это также известно как Castagnoli CRC32 и наиболее заметно обнаруживается в новых процессорах Intel, которые могут вычислять полный 32-битный шаг CRC за 3 цикла. Именно поэтому CRC32C становится все более популярным, поскольку он позволяет продвинутые реализации эффективно обрабатывать одно 32-разрядное слово за такт, несмотря на задержку с тремя циклами (путем обработки 3 потоков данных параллельно и с использованием линейной алгебры для объединения результатов).