转载自: https://blog.csdn.net/dengpost/article/details/109703427,
补充了原文示例代码中没有添加的导包内容。
输入的字符串:"3156EF1A"
转换后需要的结果 :0X31、0X56、0XEF、0X1A
输入的数据为16进制的字符串,需要将其转成对应的16进制值,经过查询,发现encoding/hex包中的func DecodeString(s string) ([]byte, error)和func EncodeToString(src []byte) string 函数可以进行相互转换,而且很容易实现此功能。
具体演示代码如下:
package main
import (
"encoding/hex"
"fmt"
)
func main() {
strData := "3156EF1A"
fmt.Println("strData:" + strData)
// 将HEX编码的字符串转换为HEX数据
data1, _ := hex.DecodeString(strData)
for n, v := range data1 {
fmt.Printf("strData[%d]值十进制为:%v , 16进制为:%#X \n", n, v, v)
}
// 将HEX数据转换为HEX编码的字符串
fmt.Printf("strdata[]tostring = %v \n", hex.EncodeToString(data1))
}
运行结果: