FNV-1a Hash 算法代码实例


  1 #include "stdio.h"
  2 #include "string.h"
  3
  4 unsigned int FNV_Hash(unsigned int uiSrcData)
  5 {
  6     /* FNV_prime = 224 + 28 + 0x93 = 16777619
  7         32 bit offset_basis = 2166136261
  8     */
  9
 10     unsigned int offset_basis = 2166136261;
 11     unsigned int FNV_prime = 16777619;
 12     unsigned int hash;
 13
 14     hash = offset_basis;
 15
 16     //for each octet_of_data to be hashed
 17      hash = hash ^ uiSrcData;
 18      hash = hash * FNV_prime;
 19      return hash;
 20 }
 21
 22 int main()
 23 {
 24     unsigned int i = 0x34567890;
 25     unsigned int j = 0x89078656;
 26
 27     printf("hasn(i) is %ld\n",FNV_Hash(i) & 65535);
 28     printf("hasn(j) is %ld\n",FNV_Hash(j) & 65535);
 29
 30 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值