Golang中如何将十进制转换为十六进制
Golang中如何将十进制转换为十六进制 大家好, 我需要使用GO将十进制值转换为十六进制值。是否有现成的方法可以实现这种转换?
谢谢
4 回复
使用 strconv
var n int64 = 1500
hex := strconv.FormatInt(n, 16)
fmt.Println(hex)
使用 fmt,如果你需要字符串:
var n int64 = 1500
hex := fmt.Sprintf("%x", n)
fmt.Println(hex)
我假设您获得一个表示十进制数的字符串作为输入,并希望返回一个表示相同数字但为十六进制格式的字符串。
您可以使用 strconv 包。您的输入 base 是 10,输出 base 是 16。
当然,您也可以自己实现一个直接的转换。但由于这是家庭作业中非常常见的任务,我将把这些实现留给您。如果您需要自己实现,您需要展示您的实现,我们会帮助您正确完成。
在Go语言中,可以使用标准库中的strconv包来轻松实现十进制到十六进制的转换。具体来说,FormatInt函数可以将一个整数转换为指定进制的字符串表示,其中十六进制对应基数16。
以下是一个示例代码,展示如何将十进制整数转换为十六进制字符串:
package main
import (
"fmt"
"strconv"
)
func main() {
decimalValue := 255
// 使用strconv.FormatInt进行转换,基数设置为16
hexString := strconv.FormatInt(int64(decimalValue), 16)
fmt.Printf("十进制 %d 转换为十六进制: %s\n", decimalValue, hexString)
}
输出结果:
十进制 255 转换为十六进制: ff
如果处理的是无符号整数,可以使用FormatUint函数:
package main
import (
"fmt"
"strconv"
)
func main() {
decimalValue := uint(255)
hexString := strconv.FormatUint(uint64(decimalValue), 16)
fmt.Printf("十进制 %d 转换为十六进制: %s\n", decimalValue, hexString)
}
输出结果相同:
十进制 255 转换为十六进制: ff
对于负整数,转换会直接处理其二进制补码形式:
package main
import (
"fmt"
"strconv"
)
func main() {
decimalValue := -255
hexString := strconv.FormatInt(int64(decimalValue), 16)
fmt.Printf("十进制 %d 转换为十六进制: %s\n", decimalValue, hexString)
}
输出结果:
十进制 -255 转换为十六进制: -ff
这些方法都直接利用了Go标准库,无需额外依赖。

