将 int 转换为带前导零的十六进制
Posted
技术标签:
【中文标题】将 int 转换为带前导零的十六进制【英文标题】:Convert int to hex with leading zeros 【发布时间】:2013-04-01 22:45:01 【问题描述】:如何将 int(4 个字节)转换为 hex(“XX XX XX XX
”)而无需循环?
例如:
i=13 hex="00 00 00 0D"
i.ToString("X")
返回"D"
,但我需要一个 4 字节的十六进制值。
【问题讨论】:
***.com/questions/1139957/… @Joetjah 这些答案只提到了 OP 已经知道的X
。这个问题是关于有领先的0
数字。
如果您找到一个,可以将其作为重复项关闭,但您当前关闭它的问题是没有重复项。那里的答案推荐ToString("X")
,它不会产生OP要求的前导零。
【参考方案1】:
您可以通过将所需的十六进制位数附加到X
格式字符串来指定最小位数。由于两个十六进制数字对应一个字节,因此您的 4 字节示例需要 8 个十六进制数字。即使用i.ToString("X8")
。
如果您需要小写字母,请使用 x
而不是 X
。例如13.ToString("x8")
映射到0000000d
。
【讨论】:
【参考方案2】:试试这个:
int innum = 123;
string Hex = innum .ToString("X"); // gives you hex "7B"
string Hex = innum .ToString("X8"); // gives you hex 8 digit "0000007B"
【讨论】:
以上是关于将 int 转换为带前导零的十六进制的主要内容,如果未能解决你的问题,请参考以下文章
在 Rust 中将二进制字符串转换为带有前导零的十六进制字符串