问题描述
问题很简单
如何将"46447381"
转入[]byte{0x46,0x44,0x73,0x81}
?
推荐答案
只需使用hex.DecodeString()
函数:
s := "46447381"
data, err := hex.DecodeString(s)
if err != nil {
panic(err)
}
fmt.Printf("% x", data)
输出:
46 44 73 81
在Go Playground上试用。
注意:
如果只使用fmt.Println(data)
打印字节切片,则打印值将为十进制格式,这就是为什么它与您的输入string
不匹配(因为它是以十六进制格式指定的)。
fmt.Println(data)
的输出为:
[70 68 115 129]
这些数字只是以十进制表示的相同数字。