Хотя CRC, инициализированный в ноль, не подвержен влиянию начальных нулей, если во время передачи какой-либо из этих ведущих нулей станет ненулевым из-за ошибки, он обнаружит ошибку.Чего он не поймает, так это укороченного сообщения, в котором некоторые ведущие нули удаляются из сообщения, что приводит к укороченному сообщению, что может быть проблемой, если нет отдельной проверки длины.Использование всех поймает такое сокращенное сообщение.Фактически любой ненулевой начальный CRC будет перехватывать сокращенное сообщение.Все просто удобно.Одним из вариантов является использование CRC, сгенерированного из короткого шаблона данных из всех, для начального значения, например, 16-битные биты, используемые в качестве данных для 16-битного CRC, для генерации начального CRC (это будет константа, поэтому будетвычисляется заранее), что будет эквивалентно добавлению данных со всеми 1 битами и инициализации CRC равным 0.