parent
4117638ad4
commit
4fe0c2acdb
@ -0,0 +1,65 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"math"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
/*
|
||||
@Auth:ShenZ
|
||||
@Description: 用于UUID 加密算法
|
||||
*/
|
||||
|
||||
func StringToArray(intput string) []int {
|
||||
output := []int{}
|
||||
for _, v := range intput {
|
||||
output = append(output, int(v))
|
||||
}
|
||||
for i, j := 0, len(output)-1; i < j; i, j = i+1, j-1 {
|
||||
output[i], output[j] = output[j], output[i]
|
||||
}
|
||||
return output
|
||||
}
|
||||
func GetInput(intput string) <-chan int {
|
||||
out := make(chan int)
|
||||
go func() {
|
||||
for _, b := range StringToArray(intput) {
|
||||
out <- b
|
||||
}
|
||||
close(out)
|
||||
}()
|
||||
return out
|
||||
}
|
||||
func SQ(in <-chan int) <-chan int {
|
||||
out := make(chan int)
|
||||
var base, i float64 = 2, 0
|
||||
go func() {
|
||||
for n := range in {
|
||||
out <- (n - 48) * int(math.Pow(base, i))
|
||||
i++
|
||||
}
|
||||
close(out)
|
||||
}()
|
||||
return out
|
||||
}
|
||||
|
||||
func ToInt(intput string) int {
|
||||
//intput := "101010101110110"
|
||||
c := GetInput(intput)
|
||||
out := SQ(c)
|
||||
sum := 0
|
||||
for o := range out {
|
||||
sum += o
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
// int 转 二进制的字符串
|
||||
func ConverToBinary(n int) string {
|
||||
res := ""
|
||||
for ; n > 0; n /= 2 {
|
||||
lsb := n % 2
|
||||
res = strconv.Itoa(lsb) + res
|
||||
}
|
||||
return res
|
||||
}
|
Loading…
Reference in new issue