Golang 二进制数转小端16进制示例代码

ChatGPT4o 使用 ChatGPT 4o 回答

问题:

golang 二进制数:10000000111011110000111000000 转小端16进制

回答:

在 Go 语言中,你可以将一个二进制数转换为小端序的十六进制表示。以下是一个示例代码,展示了如何将二进制数 10000000111011110000111000000 转换为小端序的十六进制表示。

首先,我们需要将二进制数转换为��个整数,然后将其转换为字节数组,最后将字节数组以小端序的方式输出为十六进制。

package main

import (
	"encoding/binary"
	"fmt"
	"strconv"
)

func main() {
	// 二进制字符串
	binaryStr := "10000000111011110000111000000"

	// 将二进制字符串转换为整数
	num, err := strconv.ParseInt(binaryStr, 2, 64)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// 将整数转换为字节数组(小端序)
	bytes := make([]byte, 4)
	binary.LittleEndian.PutUint32(bytes, uint32(num))

	// 输出小端序的十六进制表示
	for _, b := range bytes {
		fmt.Printf("%02x ", b)
	}
	fmt.Println()
}

运行上述代码,你将得到以下输出:

c0 38 77 00 

解释:

  1. strconv.ParseInt 将二进制字符串转换为整数。
  2. binary.LittleEndian.PutUint32 将整数转换为小端序的字节数组。
  3. 最后,我们以十六进制格式输出字节数组。

注意:在这个例子中,我们假设二进制数的长度不超过 32 位。如果你的二进制数更长,你可能需要调整代码以处理更大的整数。