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'
TA贡献1801条经验 获得超16个赞
“十六进制”不是真实的东西。您可以使用数字的十六进制表示,但0xFF和之间没有区别255。更多信息可以在文档中找到,其中指出您可以0xff用来定义整数常量255!正如你提到的,如果你想找到一个整数的十六进制表示,你可以使用strconv
package main
import (
"fmt"
"strconv"
)
func main() {
fmt.Println(strconv.FormatInt(255, 16))
// gives "ff"
}
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' 转换为十六进制
- 3 回答
- 0 关注
- 195 浏览
添加回答
举报