string - Go中如何将十六进制字符串直接转为[]byte?

标签 string go hex slice

问题很简单,

如何将 "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) 打印字节 slice ,打印的值将采用十进制格式,这就是它与您输入的 string 不匹配的原因> (因为它是以十六进制格式指定的)。
fmt.Println(data) 的输出为:

[70 68 115 129]

这些是相同的数字,只是以十进制表示。

关于string - Go中如何将十六进制字符串直接转为[]byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404326/

相关文章:

python - Pandas Dataframe 的子集,由具有特定列值的行组成

java - 为什么我不能执行返回 Iterator().next().length() 的方法?

javascript - 用javascript替换字符串中的字符

go - 使用多个go例程从 channel 中提取

c - strtoul() 函数中的第二个参数有什么作用?

c++ - 如何在 C++ 中解析包含 -0x1.0c7474fp+8 形式的十六进制文件?

java - 将十六进制数转换为长整数

java - 正则表达式 - 使用正则表达式搜索字符串并从原始字符串中提取匹配项

go - 在go中定期运行一个函数

go - 如何运行无限循环并保持电报bot中的更新