将int转换为带有前导零的十六进制

时间:2013-04-10 07:50:27

标签: c# hex string-formatting

如何在没有循环的情况下将int(4字节)转换为十六进制(“XX XX XX XX”)?

例如:

i=13 hex="00 00 00 0D"

i.ToString("X")返回"D",但我需要一个4字节的十六进制值。

2 个答案:

答案 0 :(得分:60)

您可以通过将所需的十六进制数字数附加到X格式字符串来指定最小位数。由于两个十六进制数字对应一个字节,因此4字节的示例需要8个十六进制数字。即使用i.ToString("X8")

如果您需要小写字母,请使用x代替X。例如13.ToString("x8")映射到0000000d

答案 1 :(得分:10)

试试这个:

int innum = 123;
string Hex = innum .ToString("X");  // gives you hex "7B"
string Hex = innum .ToString("X8");  // gives you hex 8 digit "0000007B"