sdbm
karma işlevi (this gibi) C# nasıl uygulanır?Bir sdbm karma işlevi C# nasıl uygulanabilir?
3
A
cevap
4
Sen bir değişiklik olmadan neredeyse C kodu alabilir:
uint sdbm(string str)
{
uint hash = 0;
foreach(char ch in str)
{
hash = ch + (hash << 6) + (hash << 16) - hash;
}
return hash;
}
Yoksa daha sofistike bir şey düşündünüz?
1
Bir C derleyicisi bu yüzden aynı gerçekleştirir olmadığını görmek için test edemez kurdunuz yok, ama ben şu doğrudur düşünüyorum
:
private static ulong SBDM(string str)
{
ulong hash = 0;
foreach (char c in str)
{
hash = c + (hash << 6) + (hash << 16) - hash;
}
return hash;
}
sadece gerekiyorsa dize bir karma olsun ve çok fazla önemli değil, uygulama her zaman theString.GetHashCode();
0
Karmadan elde edilen sonuç C++ ve C# uygulamaları arasında farklılık gösterir. Bu str parametresinin bayt dizisi olarak geçirilmesi gerektiğini anladım. değeri dönüştürerek yöntem
private uint sdbm(byte[] str)
{
uint hash = 0;
foreach (char ch in str)
hash = ch + (hash << 6) + (hash << 16) - hash;
return hash;
}
Çağrı BitConverter.GetBytes yöntemi ile karma edilmesi.
uint Hash = sdbm(BitConverter.GetBytes(myID));
İlgili konular
- 1. Kalıtım C# nasıl uygulanabilir?
- 2. MD5 Karma işlevi excel'de mi?
- 3. C++ C işlevi nasıl çağrılır?
- 4. nasıl böyle bir işlevi var bir C++ işlevi
- 5. C# hızlı karma hesaplama
- 6. Python'da nasıl tekrarlı bir regexp uygulanabilir?
- 7. C++ C++ DLL işlevi nasıl yapılır C#
- 8. Python 256bit Sayı işlevi olan karma işlev
- 9. OpenSocial uygulanabilir bir API seçeneğidir?
- 10. Basit kısa karma değeri nasıl oluşturulur? C#
- 11. SQL Bigint karma karma
- 12. C++ Çağrı İşlevi Üye İşlevi
- 13. C++ karma siparişi verdi mi?
- 14. Java'dan C# işlevi nasıl çağırılır
- 15. Bildirilen C işlevi nasıl uygulanamaz?
- 16. C# Programlama işlevi nasıl bulunur?
- 17. Derleme zamanında C++ 'da bir üye işlevi
- 18. C++: İşaretçi işlevi işlevi işaretçi
- 19. Karma değerler nasıl değiştirilir?
- 20. Bir karma tablosu nasıl oluşturulur
- 21. Bir karma görev içinde karma görevini nasıl çalıştırırım?
- 22. bağlama işlevi, C++
- 23. C++ bağlama işlevi
- 24. C de getchar işlevi ve putchar işlevi nasıl kullanılır?
- 25. Karma C++ ve Fortran Bağlama Sayı
- 26. Bir matematiksel operatör Ciltleme yoluna uygulanabilir mi?
- 27. Bir int veya float gerektiren bir C işlevi nasıl yazabilirim?
- 28. Mükemmel bir karma için bir işlev tasarlamaya nasıl giderdin?
- 29. C++ 'da bir işleç + işlevi bildirme
- 30. polimorfik bir işlevi çağırıyor