analysis.go 485 B

123456789101112131415161718192021222324
  1. package table
  2. import (
  3. "hash/crc32"
  4. "strconv"
  5. )
  6. // Crc32Hash 用于32张分表
  7. func Crc32Hash(src string) string {
  8. sum := crc32.ChecksumIEEE([]byte(src)) % 32
  9. return strconv.Itoa(int(sum))
  10. }
  11. // Crc16Hash 用于16张分表
  12. func Crc16Hash(src string) string {
  13. sum := crc32.ChecksumIEEE([]byte(src)) % 16
  14. return strconv.Itoa(int(sum))
  15. }
  16. // Crc8Hash 用于8张分表
  17. func Crc8Hash(src string) string {
  18. sum := crc32.ChecksumIEEE([]byte(src)) % 8
  19. return strconv.Itoa(int(sum))
  20. }