如何在 Go 中将整数转换为固定长度的十六进制字符串?

我想将一个整数转换为一个固定长度为 64 个字符的十六进制字符串,在不使用所有 32 个十六进制值的整数值前面加上零。如果我尝试以下操作,它会在前面添加空格s而不是零。


i := 898757

s := fmt.Sprintf("%64x", i)

fmt.Println(s)


POPMUISE
浏览 356回答 1
1回答

慕田峪9158850

正确的格式是"%064x":fmt.Printf("%064x\n", 898757)000000000000000000000000000000000000000000000000000000000000db6c5其中前导0是格式化字符串的“标志”。根据fmt 文档:0:用前导零而不是空格填充;对于数字,这会在符号后移动填充我个人的偏好是使用句点将标志与长度字段分开。这在技术上有效,因为.对于整数动词没有意义并且被忽略。我发现它是一个有用的视觉指标。格式字符串变为"%0.64x".
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go