FNV-1 on HSP (ハッシュ関数)

http://wowdev.jp/?p=873
からお借りしてHSPに移植しました。

http://wowdev.jp/?p=873
からお借りしてHSPに移植しました。

// http://wowdev.jp/?p=873
// https://qiita.com/Ushio/items/a19083514d087a57fc72
/**
* FNV Constants
*/
#module FNV
#const FNV_OFFSET_BASIS_32 2166136261
#const FNV_PRIME_32 16777619
/**
* FNV Hash Algorithm
*/
#defcfunc fnv_1_hash_32 str _bytes
bytes = _bytes
hash = FNV_OFFSET_BASIS_32
repeat strlen(bytes)
hash = (FNV_PRIME_32 * hash) ^ peek(bytes, cnt)
loop
return double(strf("%u",hash))
#global
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX