0xDEADBEEF

RSS odkazy

unhash.d

struct MurmurHash3_32 {
  import core.bitop;

  uint h;
  size_t len;

  private enum uint c1 = 0xcc9e2d51u;
  private enum uint c2 = 0x1b873593u;
  private enum uint n  = 0xe6546b64u;

  void hash(uint k) {
    k *= c1;
    k = rol(k, 15);
    k *= c2;

    h ^= k;
    h = rol(h, 13);
    h = h * 5 + n;

    len += 4;
  }

  uint finish() {
    h ^= len;

    h ^= h >> 16;
    h *= 0x85ebca6b; // c3
    h ^= h >> 13;
    h *= 0xc2b2ae35; // c4
    h ^= h >> 16;
    return h;
  }
}
píše k47 (@kaja47, k47)