为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 int 转换为 hex

如何从 int 转换为 hex

Go
吃鸡游戏 2021-11-22 15:04:40
我想在 Golang 中从 int 转换为 hex。在 strconv 中,有一种将字符串转换为十六进制的方法。是否有类似的方法可以从 int 中获取十六进制字符串?
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

由于 hex 是一个Integer literal,您可以使用, 和or格式向fmt 包询问该整数的字符串表示形式。看游乐场fmt.Sprintf()%x%X


i := 255

h := 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'


查看完整回答
反对 回复 2021-11-22
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

“十六进制”不是真实的东西。您可以使用数字的十六进制表示,但0xFF和之间没有区别255。更多信息可以在文档中找到,其中指出您可以0xff用来定义整数常量255!正如你提到的,如果你想找到一个整数的十六进制表示,你可以使用strconv


package main


import (

    "fmt"

    "strconv"

)


func main() {

    fmt.Println(strconv.FormatInt(255, 16))

    // gives "ff"

}


查看完整回答
反对 回复 2021-11-22
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

如果格式化一些字节,十六进制需要 2 位数字表示,前导 0。


例如:1 => '01'、15 => '0f' 等。


可以强制 Sprintf 遵守这一点:


h:= fmt.Sprintf("%02x", 14)

fmt.Println(h) // 0e

h2:= fmt.Sprintf("%02x", 231)

fmt.Println(h2) // e7

模式“%02x”意味着:


“0”力使用零

'2' 将输出大小设置为两个字符

'x' 转换为十六进制


查看完整回答
反对 回复 2021-11-22
  • 3 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信