January 01, 2019
I need to hash a few strings to a byte, short, or int. hashOf works for int only on x86.

What would be a nice way to accomplish this? Collisions are not good but not catastrophic. Mainly I need a unique ID to emulate enums. I might just chop off the extra bits or mash them up somehow and it will probably work but hoping for something more solid.

January 02, 2019
On 1/1/19 2:40 PM, Michelle Long wrote:
> I need to hash a few strings to a byte, short, or int. hashOf works for int only on x86.
> 
> What would be a nice way to accomplish this? Collisions are not good but not catastrophic. Mainly I need a unique ID to emulate enums. I might just chop off the extra bits or mash them up somehow and it will probably work but hoping for something more solid.
> 

Not from experience, but just thinking out loud, you could take the int and xor the parts together.

in other words:

auto x = hashOf(y);
ushort realHash = (x ^ (x >> 16)) & 0xffff;

ubyte would be 4 terms, but still not too bad.

-Steve