猿问

如何从 int 转换为 hex

我想在 Golang 中从 int 转换为 hex。在 strconv 中,有一种将字符串转换为十六进制的方法。是否有类似的方法可以从 int 中获取十六进制字符串?


吃鸡游戏
浏览 196回答 3
3回答

函数式编程

由于 hex 是一个Integer literal,您可以使用, 和or格式向fmt 包询问该整数的字符串表示形式。看游乐场fmt.Sprintf()%x%Xi := 255h := fmt.Sprintf("%x", i)fmt.Printf("Hex conv of '%d' is '%s'\n", i, h)h = fmt.Sprintf("%X", i)fmt.Printf("HEX conv of '%d' is '%s'\n", i, h)输出:Hex conv of '255' is 'ff'HEX conv of '255' is 'FF'

侃侃尔雅

“十六进制”不是真实的东西。您可以使用数字的十六进制表示,但0xFF和之间没有区别255。更多信息可以在文档中找到,其中指出您可以0xff用来定义整数常量255!正如你提到的,如果你想找到一个整数的十六进制表示,你可以使用strconvpackage mainimport (    "fmt"    "strconv")func main() {    fmt.Println(strconv.FormatInt(255, 16))    // gives "ff"}

一只甜甜圈

如果格式化一些字节,十六进制需要 2 位数字表示,前导 0。例如:1 => '01'、15 => '0f' 等。可以强制 Sprintf 遵守这一点:h:= fmt.Sprintf("%02x", 14)fmt.Println(h) // 0eh2:= fmt.Sprintf("%02x", 231)fmt.Println(h2) // e7模式“%02x”意味着:“0”力使用零'2' 将输出大小设置为两个字符'x' 转换为十六进制
随时随地看视频慕课网APP

相关分类

Go
我要回答