String 如何在Go中直接将十六进制字符串传输到[]字节?
问题很简单 如何将String 如何在Go中直接将十六进制字符串传输到[]字节?,string,go,hex,slice,String,Go,Hex,Slice,问题很简单 如何将“46447381”转换为[]字节{0x46,0x44,0x73,0x81}?只需使用以下函数: s := "46447381" data, err := hex.DecodeString(s) if err != nil { panic(err) } fmt.Printf("% x", data) 输出: 46 44 73 81 试穿一下 注意: 46 44 73 81 如果仅使用fmt.Println(data)打印字节片,打印的值将采用十进制格式,这就是为
“46447381”
转换为[]字节{0x46,0x44,0x73,0x81}
?只需使用以下函数:
s := "46447381"
data, err := hex.DecodeString(s)
if err != nil {
panic(err)
}
fmt.Printf("% x", data)
输出:
46 44 73 81
试穿一下
注意:
46 44 73 81
如果仅使用fmt.Println(data)
打印字节片,打印的值将采用十进制格式,这就是为什么它与您的输入字符串不匹配的原因(因为它是以十六进制格式指定的)。
fmt.Println(数据)
的输出为:
[70 68 115 129]
这些数字都是十进制的。这比我想象的要复杂得多,因为我只使用hex.EncodeToString,我想知道为什么我不能使用这种函数让它返回。@EdmDroid是的,问题很简单,但这意味着我想要一个简单的答案。你说得对,我太蠢了,我认为这不应该转移到dec,但确实应该,谢谢。