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;
}
아니면 더 정교한 뭔가 생각 했를?
1
나는 C 컴파일러는 내가이 같은 수행 있는지 확인하기 위해 테스트 할 수 없습니다 설정하지 않지만, 나는 다음이 올바른지 생각
:
private static ulong SBDM(string str)
{
ulong hash = 0;
foreach (char c in str)
{
hash = c + (hash << 6) + (hash << 16) - hash;
}
return hash;
}
당신은 단지에 필요한 경우 문자열의 해시를 얻고 구현이 무엇인지 항상 중요하지 않습니다. theString.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. C에서 순환리스트 (링 버퍼)를 어떻게 구현합니까?
- 2. 해시 테이블 조회 - C에서 완벽한 해시 사용
- 3. JavaScript VM은 객체 속성 액세스를 어떻게 구현합니까? 해시 테이블인가?
- 4. VBScript에서 select 문을 어떻게 구현합니까?
- 5. 빠른 해시 함수를 찾고
- 6. 어떻게 네트워크 콜백을 구현합니까?
- 7. 어떻게 C에서 메시지와 함께 nestable try-catch-finally 문을 구현합니까
- 8. C++에서 계승 함수를 적절한 오류 처리로 어떻게 구현합니까?
- 9. C에서 함수를 선언해야합니까?
- 10. IronPython에서 인터페이스를 어떻게 구현합니까?
- 11. 델리게이트 팩토리는 어떻게 구현합니까?
- 12. 어떻게 MPVolumeView를 구현합니까?
- 13. 여기에 핸들러를 어떻게 구현합니까?
- 14. 비트 배열을 어떻게 구현합니까?
- 15. Html.RenderAction으로 ModelBinding을 어떻게 구현합니까?
- 16. 인터페이스는 어떻게 기능을 구현합니까?
- 17. 어떻게 비트 맵을 구현합니까?
- 18. Java 서버는 어떻게 구현합니까?
- 19. IValidatableObject는 어떻게 구현합니까?
- 20. IEnumerable은 어떻게 구현합니까?
- 21. Matlab은 knnclassify를 어떻게 구현합니까?
- 22. 객체 이벤트, 어떻게 구현합니까?
- 23. Chrome에서 탭을 어떻게 구현합니까?
- 24. Ruby는 어떤 해시 함수를 사용합니까?
- 25. 해시 함수를 길게 한 쌍의?
- 26. 어떤 암호 해시 함수를 사용해야합니까?
- 27. 완벽한 해시 함수를 설계하는 방법에 대해 어떻게 생각하십니까?
- 28. C#에서 피아노 건반 기능을 어떻게 구현합니까?
- 29. CRC32 객관적 C에서 문자열을 해시 할 방법
- 30. C에서 사전에 대한 일관된 해시 코드 #