github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/pkg/utils/numb/numb.go (about)

     1  package numbUtils
     2  
     3  import (
     4  	"math"
     5  	"strings"
     6  )
     7  
     8  var num2char = "0123456789abcdefghijklmnopqrstuvwxyz"
     9  
    10  func NumToBHex(num int) string {
    11  	n := 36
    12  
    13  	numStr := ""
    14  	for num != 0 {
    15  		yu := num % n
    16  		numStr = string(num2char[yu]) + numStr
    17  		num = num / n
    18  	}
    19  
    20  	numStr = strings.ToUpper(numStr)
    21  	numStr = strings.Repeat("0", 5-len(numStr)) + numStr
    22  	return numStr
    23  }
    24  
    25  func BHex2Num(str string) int {
    26  	n := 36
    27  
    28  	str = strings.ToLower(str)
    29  	v := 0.0
    30  	length := len(str)
    31  	for i := 0; i < length; i++ {
    32  		s := string(str[i])
    33  		index := strings.Index(num2char, s)
    34  		v += float64(index) * math.Pow(float64(n), float64(length-1-i)) // 倒序
    35  	}
    36  	return int(v)
    37  }