0xC704DD7B, который был в статье Wiki, является инвертированным битом и дополнением 0x2144DF1 C, которое является значением, которое вы получаете, и значением, которое вы должны получить.
В случае CRC32, так как CR C дополняется после публикации, «хороший» пересчет CR C, выполняемый для данных + ранее вычисленный CR C, будет ненулевой константой, в данном случае 0x2144DF1 C. Это не «число магов c», ненулевое значение константы для хорошего CR C является следствием посткомплементации CR C (в противном случае хороший пересчитанный CR C будет равен нулю).
Что сбивает с толку, так это то, что стандарт IEEE использует CRC32 BZIP2 со сдвигом влево (не обращенный) CR C для создания CR C, а затем сообщает, что данные сначала передаются младшим значащим битом, в то время как CR C (называемый FCS (Frame Check Sequence)) передается первым старшим значащим битом (бит 31). При использовании правого сдвига CRC32 (в обратном порядке) CR C производит тот же CR C, но с обращенным битом, и передача как данных, так и самого младшего значащего бита CR C приводит к идентичной передаче. Таким образом, в зависимости от фактической реализации, CR C может быть обращен или нет, и может дополняться или не дополняться, если используется «остаток» в аппаратном регистре.
Теперь статья в вики обновлена и теперь включает эти проблемы.