-
函数式编程
由于 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' 转换为十六进制