我试了https://github.com/spaolacci/murmur3,roberson-io/mmh3和许多go版本。但是我从python mmh3得到了不同的结果。
Python示例:
import mmh3
print(mmh3.hash("foods",45))
Go示例:
package main
import (
"fmt"
"github.com/spaolacci/murmur3"
)
func main() {
mHash := murmur3.New32WithSeed(45)
mHash.Write([]byte("foods"))
hashNum := mHash.Sum32()
fmt.Println(hashNum)
fmt.Printf("%d\n", murmur3.Sum64WithSeed([]byte("foods"), 45))
}
我想用python mmh3得到相同的散列值。那么如何从python中用mmh3得到相同的散列值呢?
1条答案
按热度按时间8wtpewkr1#
在Go语言中,所有的哈希方法都返回无符号整数:
而在Python中,它们默认返回有符号整数:
如果你想要相同的十进制数,你要么从Python返回一个unsigned int:
或者Go语言中的有符号整数: