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
  • Low order hashes Michelle Long via Digitalmars-d-learn
    • Re: Low order hashes Steven Schveighoffer via Digitalmars-d-learn

Reply via email to