"Go djb2 구현"의 두 판 사이의 차이

(새 문서: ==개요== ;Go djb2 구현 ;Go djb2 해시 테이블 구현 <syntaxhighlight lang='console'> package main import ( "fmt" ) func djb2(text string) uint64 { var hash uint64 = 5381...)
 
 
(같은 사용자의 중간 판 3개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;Go djb2 구현
;Go djb2 구현
;Go djb2 해시 테이블 구현
;Go djb2 해시 알고리즘 구현


<syntaxhighlight lang='console'>
<syntaxhighlight lang='go' run>
package main
package main


10번째 줄: 10번째 줄:
)
)


func djb2(text string) uint64 {
func djb2(s string) uint64 {
var hash uint64 = 5381
var hash uint64 = 5381
for i := 0; i < len(text); i++ {
for _, c := range s {
char := text[i]
// hash = hash * 33 + uint64(c)
hash = ((hash << 5) + hash) + uint64(char)
hash = ((hash << 5) + hash) + uint64(c)
}
}
return hash
return hash
24번째 줄: 24번째 줄:
}
}
</syntaxhighlight>
</syntaxhighlight>


==같이 보기==
==같이 보기==
* [[djb2]]
* [[djb2]]
* [[함수 djb2()]]


[[분류: djb2]]
[[분류: djb2]]

2024년 3월 3일 (일) 14:50 기준 최신판

1 개요[ | ]

Go djb2 구현
Go djb2 해시 알고리즘 구현
package main

import (
	"fmt"
)

func djb2(s string) uint64 {
	var hash uint64 = 5381
	for _, c := range s {
		// hash = hash * 33 + uint64(c)
		hash = ((hash << 5) + hash) + uint64(c)
	}
	return hash
}

func main() {
	fmt.Println(djb2("hello")) // 210714636441
	fmt.Println(djb2("world")) // 210732791149
}

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}