Golang 中整数的十六进制表示

问题描述 投票:0回答:1

无法理解Go如何将整数转换为十六进制

当我运行这段代码时

package main

import (
    "fmt"
)

func main() {
    d := -12345
    hex := fmt.Sprintf("%X", d)
    fmt.Println(hex)
}

我看到结果

-3039
,但我希望看到
cfc7
,因为 go 使用补码表示 我怎样才能在输出中得到正确的答案?

go hex
1个回答
0
投票

您正在传递一个已签名的

int
。传递未登录的信息:

    hex := fmt.Sprintf("%X", d)

这将打印 FFFFFFFFFFFFFFC7

© www.soinside.com 2019 - 2024. All rights reserved.