如何在C#中将12位整数转换为十六进制字符串?

时间:2008-09-27 02:48:16

标签: c#

我想将0到4096(12位)之间的数字转换为C#中的3字符十六进制字符串表示。

示例:

2748 to "ABC"

4 个答案:

答案 0 :(得分:3)

2748.ToString("X")

答案 1 :(得分:2)

如果您想要3个字符且确定数字在范围内,请使用:

i.ToString("X3")

如果您不确定该号码是否在范围内,这将为您提供超过3位数字。你可以这样做:

(i % 0x1000).ToString("X3")

如果您想要小写字母,请使用小写字母“x3”。

答案 2 :(得分:1)

注意:这假设您使用的是自定义的12位表示形式。如果你只是使用int / uint,那么Muxa的解决方案是最好的。

每四位对应一个十六进制数字。

因此,只需将前四位数字与字母匹配,然后>> 4输入,并重复。

答案 3 :(得分:1)

easy C解决方案可以适应:

char hexCharacters[17] = "0123456789ABCDEF";
void toHex(char * outputString, long input)
{
   outputString[0] = hexCharacters[(input >> 8) & 0x0F];
   outputString[1] = hexCharacters[(input >> 4) & 0x0F];
   outputString[2] = hexCharacters[input & 0x0F];
}

你也可以在一个循环中完成它,但这非常简单,并且循环只有三次转换的开销非常高。

我希望C#具有某种类型的库函数。您甚至可以在C中使用sprintf,我确信C#具有此功能的模拟。

- 亚当