golang16进制和字节数组转换

发布时间:2024-12-23 02:27:09

go语言中的16进制与字节数组转换

在golang开发中,处理16进制数据与字节数组是非常常见的操作。本文将介绍golang中如何进行16进制和字节数组之间的转换。

1. 字节数组转16进制字符串

在golang中,可以使用encoding/hex包来进行字节数组与16进制字符串之间的转换。

package main

import (
	"encoding/hex"
	"fmt"
)

func main() {
	// 定义一个字节数组
	bytes := []byte{10, 20, 30}

	// 将字节数组转为16进制字符串
	hexStr := hex.EncodeToString(bytes)

	fmt.Println(hexStr) // 输出结果为 "0a141e"
}

通过hex.EncodeToString函数可以将字节数组转为16进制字符串,输出结果为"0a141e"。

2. 16进制字符串转字节数组

同样使用encoding/hex包,可以将16进制字符串转为字节数组。

package main

import (
	"encoding/hex"
	"fmt"
)

func main() {
	// 定义一个16进制字符串
	hexStr := "0a141e"

	// 将16进制字符串转为字节数组
	bytes, _ := hex.DecodeString(hexStr)

	fmt.Println(bytes) // 输出结果为 [10 20 30]
}

通过hex.DecodeString函数可以将16进制字符串转为字节数组。输出结果为[10 20 30]。

3. 字节数组与16进制字符串之间的互转

有时候我们需要在字节数组和16进制字符串之间进行频繁的转换,可以封装一个工具函数来简化操作。

package main

import (
	"encoding/hex"
	"fmt"
)

// 字节数组转16进制字符串
func BytesToHex(bytes []byte) string {
	return hex.EncodeToString(bytes)
}

// 16进制字符串转字节数组
func HexToBytes(hexStr string) ([]byte, error) {
	return hex.DecodeString(hexStr)
}

func main() {
	// 定义一个字节数组
	bytes := []byte{10, 20, 30}

	// 将字节数组转为16进制字符串
	hexStr := BytesToHex(bytes)
	fmt.Println(hexStr) // 输出结果为 "0a141e"

	// 将16进制字符串转为字节数组
	bytes, _ = HexToBytes(hexStr)
	fmt.Println(bytes) // 输出结果为 [10 20 30]
}

通过封装BytesToHex和HexToBytes函数,可以方便地实现字节数组和16进制字符串之间的转换。

总结

本文介绍了golang中进行16进制和字节数组之间转换的方法。使用encoding/hex包可以轻松地实现字节数组转16进制字符串和16进制字符串转字节数组的功能。通过封装工具函数,可以简化操作,并提高代码的可读性和复用性。

相关推荐