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. どのようにプロローグでランダム関数を実装するのですか?
- 2. どのようにC#でIRandomAccessStreamを実装できますか?
- 3. Cのブルームフィルタのための汎用ハッシュ関数の実装
- 4. どのようにしてPerlの関数にハッシュを渡すのですか?
- 5. ハッシュ関数を実行するにはどうすればいいですか?
- 6. Backbone.jsコンパレータ関数は、どのように降順を実装できますか?
- 7. 関数はどのようにジェネリックスをJavaで実装しますか
- 8. C#コードでpowercfgの関数をどのように実行できますか?
- 9. アイデンティティとサービスの関係をどのように実装するのですか?
- 10. 数式ファクトリはどのように実装できますか?
- 11. どのようにonShowCustomViewメソッドを実装するのですか?
- 12. タイプ関数を実装するにはどうすればいいですか?
- 13. reCaptchaのピラミッド:どのように実装するのですか?
- 14. []のように関数を実装する
- 15. どのように損失関数から独立してSoftmax派生を実装するのですか?
- 16. iOSアプリケーション用の完全なハッシュ関数を実装するより良い方法は何ですか?
- 17. matlab関数fzeroのC/C++の実装
- 18. Struts2タイル - どのように実装するのですか?
- 19. これはどのように実装するのですか?
- 20. C#delegate関数をManaged C++ .Dllにどのように渡すのですか?
- 21. ZedGraphでどのようにスプリットペインを実装できますか?
- 22. matlabのbwarea関数はどのように機能し、どのようにC言語で実装できますか?
- 23. 継承はどのようにC#で実装できますか?
- 24. DataReaderでPeek()関数を実装するにはどうすればよいですか?
- 25. 関数型プログラミング言語はどのように実装しますか?
- 26. スレッドセーフな関数のメモをC#でどのように実行するのですか?
- 27. JavaScriptハッシュを関数の引数として使用するにはどうすればよいですか?
- 28. 片道SHA1ハッシュJavaScript実装ですか?
- 29. どのようにアコーディオンスタイルのメニューを実装できますか?
- 30. C++でシグナルとイベントをどのように実装しますか?