如何在 Go 中将整数转换为固定长度的十六进制字符串?
How to convert integer to fixed length hex string in Go?
我想将一个整数转换为固定长度为 64 个字符的十六进制字符串,并为未用完所有 32 个十六进制值的整数值添加零前缀。如果我尝试以下操作,它会在 s
前面添加空格而不是零。
i := 898757
s := fmt.Sprintf("%64x", i)
fmt.Println(s)
正确的格式是"%064x"
:
fmt.Printf("%064x\n", 898757)
00000000000000000000000000000000000000000000000000000000000db6c5
其中前导 0
是格式字符串的 "flag"。根据 fmt docs:
0: pad with leading zeros rather than spaces;
for numbers, this moves the padding after the sign
我个人的偏好是使用句点将标志与长度字段分开。这在技术上是可行的,因为 .
对整数动词没有意义并被忽略。我发现它是一个有用的视觉指示器。格式字符串变为 "%0.64x"
.
我想将一个整数转换为固定长度为 64 个字符的十六进制字符串,并为未用完所有 32 个十六进制值的整数值添加零前缀。如果我尝试以下操作,它会在 s
前面添加空格而不是零。
i := 898757
s := fmt.Sprintf("%64x", i)
fmt.Println(s)
正确的格式是"%064x"
:
fmt.Printf("%064x\n", 898757)
00000000000000000000000000000000000000000000000000000000000db6c5
其中前导 0
是格式字符串的 "flag"。根据 fmt docs:
0: pad with leading zeros rather than spaces; for numbers, this moves the padding after the sign
我个人的偏好是使用句点将标志与长度字段分开。这在技术上是可行的,因为 .
对整数动词没有意义并被忽略。我发现它是一个有用的视觉指示器。格式字符串变为 "%0.64x"
.