将字节切片转换为int切片

时间:2018-01-09 23:11:32

标签: go

我正在尝试将一个字节转换为一个int,所以我继续这样做:

var d = []byte{0x01}
val, err := strconv.Atoi(string(d))

我收到此错误:

  

strconv.Atoi:解析“\ x01”:语法无效

我已经尝试了很多没有成功的方法..

有人有个主意吗?

1 个答案:

答案 0 :(得分:1)

切片已包含1的字节值,而不是ascii字符1,因此无需尝试将其转换为字符串。

要将byte切片转换为int切片,请逐个转换每个值

byteSlice := []byte{1, 2, 3, 4}
intSlice := make([]int, len(byteSlice))
for i, b := range byteSlice {
    intSlice[i] = int(b)
}

如需参考,请参阅Go Language SpecificationEffective Go中有关转化的部分。