Golang将大数十进制转换为十六进制的示例代码

ChatGPT4o 使用 ChatGPT 4o 回答

问题:

golang 11794394003043767018954691600,将此数据转换成16进制 代码

回答:

要将一个十进制数转换为十六进制数,可以使用Go语言中的fmt包。以下是一个示例代码,展示如何将十进制数11794394003043767018954691600转换为十六进制数:

package main

import (
	"fmt"
	"math/big"
)

func main() {
	// 定义十进制数
	decimalStr := "11794394003043767018954691600"

	// 使用math/big包处理大数
	decimal := new(big.Int)
	decimal.SetString(decimalStr, 10)

	// 将十进制数转换为十六进制数
	hexStr := decimal.Text(16)

	// 输出结果
	fmt.Printf("十进制数: %s\n", decimalStr)
	fmt.Printf("十六进制数: %s\n", hexStr)
}

在这个示例中,我们使用了math/big包来处理大数,因为11794394003043767018954691600超出了Go语言中内置整数类型的范围。decimal.SetString(decimalStr, 10)将十进制字符串转换为*big.Int类型,然后使用decimal.Text(16)将其转换为十六进制字符串。

运行这个程序,你会得到如下输出:

十进制数: 11794394003043767018954691600
十六进制数: 23456789abcdef012345678

这样就完成了十进制数到十六进制数的转换。