将 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 中将二进制字符串转换为带有前导零的十六进制字符串

将带符号的 Int 转换为带空格的十六进制字符串

“意外的标记 。” JSON Parse 无法解析前导零的十进制

如何在java中获取带有前导零的整数中的位数?

如何打印带有前导零的二进制整数?

将十六进制字符串转换为图像文件[重复]