Мне нравится перестраивать функцию libmem_crc32_direct
в python.
Я раньше использовал пакет crcmod
python.Поэтому мне нравится настраивать генератор crc, используя его.
код c выглядит следующим образом:
uint32_t crc_process_chunk(uint8_t* data, uint32_t len) {
return ~libmem_crc32_direct(data, len, 0xFFFFFFFF);
}
мой код Python выглядит так:
def bit_not(n, numbits=8):
return (1 << numbits) - 1 - n
def getCRC(imageBA):
crcGen = crcmod.mkCrcFun(0x104C11DB7, initCrc=0xFFFFFFFF)
val = crcGen(imageBA)
val = bit_not(val, 32)
return val
Возвращаемое значение кода Python не равно значению в c.Так что, наверное, я с ума схожу от какой-то ошибки.
Есть идеи?