Go中如何将十六进制字符串直接转为[]byte?
How to transfer hex strings to []byte directly in Go?
问题很简单,
如何将"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]
这些是相同的数字,只是以十进制表示。
问题很简单,
如何将"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]
这些是相同的数字,只是以十进制表示。