[英]Choosing between 32 and 64 bit intrinsic CRC on Intel CPU
为了在INTEL机器上形成哈希函数,我需要计算CRC并提出以下两个固有函数:
_mm_crc32_u32
_mm_crc32_u64
在我的项目中,我正在处理32位变量,而我的困境是在对两个变量进行移位和或运算(从而创建64位变量)之间,然后使用64位CRC或对每个变量运行32位CRC两个32位变量。
我在任何地方都找不到这些功能中的每一个所需要的周期数,并且从英特尔功能规范中尚不清楚哪一个更可取。
同样的难题也适用于CRC函数的16位版本:
_mm_crc32_u16
我尝试通过花CRC前后的时间来检查它。 结果几乎相同。 因此,我需要一种更复杂的计算方法。
不要将CRC用作哈希值。 这不是一回事。 使用murmurhash满足经典的计算机科学哈希需求(即,不是巨大的加密强度哈希)。 这也有不同宽度的实现。
我不明白您的意思:您有两个32位值,想要一个哈希值吗? 根据原因,这可能是明智的,也可能不是。 您能否阐明您要完成的工作?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.