go语言 将byte[]类型转换为int64类型
本文主要解决无法用常用方法转换byte[]类型为int64类型的问题
常用方法如下
b := []byte{}
b_buf := bytes .NewBuffer(b)
var x int32
binary.Read(b_buf, binary.BigEndian, &x)
fmt.Println(x)
但有时无法将byte[]转换成功,输出容易为0
以下将使用直接对ASCII操作的方式转换byte[]类型为int64类型
func bytesToInt(bys []byte) int64 {
length := float64(len(bys)) - 1
var x float64
for _, value := range bys {
tmp := math.Pow(10, length)
x = x + (float64(value)-48)*tmp
length--
}
return int64(x)
}
使用了math库来对byte[]进行操作,将每个ASCII值减去0的ASCII——48并进位相加