Python - 为什么 CRC32(np.int64(1)) 的结果与 CRC32(np.int32(1)) 不同?

Python - Why is result of CRC32(np.int64(1)) different to CRC32(np.int32(1))?

Python 中的 CRC32 比较:

>>> zlib.crc32(np.int64(1)) == zlib.crc32(np.int32(1))
False

>>> np.int64(1) == np.int32(1)
True

>>> zlib.crc32(np.int64(1))
2844319735

>>> zlib.crc32(np.int32(1))
2583214201

1的多项式表达式,无论是int64还是int32数据类型,都应该是一样的,只是CRC32结果不同。 我已经尝试了除 1 之外的许多其他数字,但 int64 和 int32 结果的 CRC32 仍然不匹配。

如果您能帮助解决这个令人难以置信的令人困惑的问题,我们将不胜感激。

cbc32 处理字节。

int32是4个字节,101 00 00 00

int64是8个字节,101 00 00 00 00 00 00 00

>>> zlib.crc32(np.int64(1)) == zlib.crc32(b''.join([np.int32(1), np.int32(0)]))
True