我想将一个整数转换为一个固定长度为 64 个字符的十六进制字符串,在不使用所有 32 个十六进制值的整数值前面加上零。如果我尝试以下操作,它会在前面添加空格s而不是零。i := 898757s := fmt.Sprintf("%64x", i)fmt.Println(s)
1 回答
慕田峪9158850
TA贡献1794条经验 获得超8个赞
正确的格式是"%064x":
fmt.Printf("%064x\n", 898757)000000000000000000000000000000000000000000000000000000000000db6c5
其中前导0是格式化字符串的“标志”。根据fmt 文档:
0:用前导零而不是空格填充;对于数字,这会在符号后移动填充
我个人的偏好是使用句点将标志与长度字段分开。这在技术上有效,因为.对于整数动词没有意义并且被忽略。我发现它是一个有用的视觉指标。格式字符串变为"%0.64x".
- 1 回答
- 0 关注
- 355 浏览
添加回答
举报
0/150
提交
取消
