为什么 CRC32(np.int64(1)) 的结果与 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 仍然不匹配。


任何有助于解决这个令人难以置信的令人困惑的问题的帮助将非常感激。


POPMUISE
浏览 94回答 1
1回答

qq_遁去的一_1

cbc32 适用于字节。int32是4个字节,1是01 00 00 00int64是8个字节,1是01 00 00 00 00 00 00 00>>> zlib.crc32(np.int64(1)) == zlib.crc32(b''.join([np.int32(1), np.int32(0)])) True
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python