为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Go 中直接将十六进制字符串传输到 []byte?

如何在 Go 中直接将十六进制字符串传输到 []byte?

Go
白猪掌柜的 2021-09-13 16:05:54
问题很简单,如何转移"46447381"到[]byte{0x46,0x44,0x73,0x81}?
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

只需使用该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]

这些都是以十进制为基础的相同数字。


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信