为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
POPMUISE 2022-06-01 16:53:16
我想将一个整数转换为一个固定长度为 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".


查看完整回答
反对 回复 2022-06-01
  • 1 回答
  • 0 关注
  • 355 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号