我有 2 个独立的应用程序,一个是 Java,另一个是 C++。我同时使用 Murmurhash3。但是,在 C++ 中,对于相同的字符串,与 Java 相比,我得到了不同的结果
这是来自 C++ 的一个:https ://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp?r=144
我正在使用以下功能:
void MurmurHash3_x86_32 ( const void * key, int len,
uint32_t seed, void * out )
上面相同的 Java 代码有很多版本。
这就是我调用 Java 的方式:
String s = new String("b2622f5e1310a0aa14b7f957fe4246fa");
System.out.println(MurmurHash3.murmurhash3_x86_32(s.getBytes(), 0, s.length(), 2147368987));
我从 Java 得到的输出:-1868221715
我从 C++ 3297211900 得到的输出
当我测试其他一些示例字符串时,例如“7c6c5be91430a56187060e06fd64dcb8”和“7e7e5f2613d0a2a8c591f101fe8c7351”,它们在 Java 和 C++ 中匹配。
任何指针表示赞赏