iPhoneプロジェクトにHTTPコネクタがあり、クエリにはFowler–Noll–Vo(FNV)ハッシュを使用してユーザー名から設定されたパラメーターが必要です。
この時点でJava実装が機能しています。これは、次のコードです。
long fnv_prime = 0x811C9DC5;
long hash = 0;
for(int i = 0; i < str.length(); i++)
{
hash *= fnv_prime;
hash ^= str.charAt(i);
}
今iPhone側で、私はこれをしました:
int64_t fnv_prime = 0x811C9DC5;
int64_T hash = 0;
for (int i=0; i < [myString length]; i++)
{
hash *= fnv_prime;
hash ^= [myString characterAtIndex:i];
}
このスクリプトでは、Javaの場合と同じ結果は得られません。
最初のループで、私はこれを取得します:
ハッシュ=0
hash = 100(最初の文字は「d」です)
hash = 1865261300(Javaのようにhash=100およびfnv_prime=-2128831035の場合)
誰かが私が欠けているものを見ますか?
助けてくれてありがとう!