vxug-WinAPI-Tricks/String Hashing/HashStringJenkinsOneAtATime32Bit/HashStringJenkinsOneAtATime32BitA.c
2021-05-30 01:47:01 -05:00

20 lines
335 B
C

UINT32 HashStringJenkinsOneAtATime32BitA(PCHAR String)
{
SIZE_T Index = 0;
UINT32 Hash = 0;
SIZE_T Length = StringLengthA(String);
while (Index != Length)
{
Hash += String[Index++];
Hash += Hash << 10;
Hash ^= Hash >> 6;
}
Hash += Hash << 3;
Hash ^= Hash >> 11;
Hash += Hash << 15;
return Hash;
}