sdbm
ハッシュ関数(thisなど)をC#で実装するにはどうすればよいですか?C#でsdbmハッシュ関数をどのように実装するのですか?
3
A
答えて
4
あなたはほとんど変化せずにCのコードを実行できます。
uint sdbm(string str)
{
uint hash = 0;
foreach(char ch in str)
{
hash = ch + (hash << 6) + (hash << 16) - hash;
}
return hash;
}
それとも、より洗練された何かを考えましたか?
私はCコンパイラはので、私はそれは同じことを実行かどうかを確認するためにテストすることはできません設定されていないが、私は次は正しいと思い
1
:
private static ulong SBDM(string str)
{
ulong hash = 0;
foreach (char c in str)
{
hash = c + (hash << 6) + (hash << 16) - hash;
}
return hash;
}
あなただけが必要な場合文字列のハッシュを取得し、実装が何であるかはそれほど重要ではありません。常にString.GetHashCode()を実行できます。
0
ハッシュの結果は、C++実装とC#実装で異なります。私はstrパラメータをバイト配列として渡す必要があることを理解しました。
private uint sdbm(byte[] str)
{
uint hash = 0;
foreach (char ch in str)
hash = ch + (hash << 6) + (hash << 16) - hash;
return hash;
}
このメソッドを呼び出すには、BitConverter.GetBytesメソッドでハッシュする値を変換します。
uint Hash = sdbm(BitConverter.GetBytes(myID));
関連する問題
- 1. SDBMハッシュ同時に
- 2. どのようにプロローグでランダム関数を実装するのですか?
- 3. どのようにC#でIRandomAccessStreamを実装できますか?
- 4. Cのブルームフィルタのための汎用ハッシュ関数の実装
- 5. ハッシュ関数の衝突率をどのようにスパイクするのですか?
- 6. どのようにしてPerlの関数にハッシュを渡すのですか?
- 7. ハッシュ関数を実行するにはどうすればいいですか?
- 8. 関数はどのようにジェネリックスをJavaで実装しますか
- 9. Backbone.jsコンパレータ関数は、どのように降順を実装できますか?
- 10. C#コードでpowercfgの関数をどのように実行できますか?
- 11. アイデンティティとサービスの関係をどのように実装するのですか?
- 12. C#のSDBMファイルにアクセス
- 13. 数式ファクトリはどのように実装できますか?
- 14. C#でスレッドアフィニティを実装するにはどうすればよいですか?
- 15. どのようにonShowCustomViewメソッドを実装するのですか?
- 16. テーマアプリケーションをどのように実装するのですか?
- 17. CのStructsをJavaでどのように実装できますか?
- 18. どのようにPHP/JavaScriptでWin32関数MessageBoxと同等の機能を実装するのですか?
- 19. opensslのハッシュ関数の実装は、ビットまたはバイト指向ですか?
- 20. reCaptchaのピラミッド:どのように実装するのですか?
- 21. C++シータ関数の実装
- 22. 関数のトップスタック実装C
- 23. daskで相対周波数関数を実装するにはどうすればよいですか?
- 24. タイプ関数を実装するにはどうすればいいですか?
- 25. Oracleトリガ:どのように実装するのですか?
- 26. Struts2タイル - どのように実装するのですか?
- 27. これはどのように実装するのですか?
- 28. Xalan拡張関数の実装でXPath式を評価するにはどうすればよいですか?
- 29. コードで次の関数を実装するにはどうすればよいですか?
- 30. ハッシュと等価メソッドをオーバーライドできるようにするHashMapの実装