C#将int转换为十六进制

C#将int转换为十六进制,c#,C#,这是我在VisualStudio中编写的代码的一小部分。 在访问uC内存时,我需要将intadd转换为十六进制值(稍后转换为字符串)。但是,当我在调试期间查看变量时,它会将其显示为字符串“add16”。我可能做错了什么 for (int add = 0; add <= 0xfffff; ) { for (int X = 0; X <= 15; X++) { string address = add.ToString("add16");

这是我在VisualStudio中编写的代码的一小部分。 在访问uC内存时,我需要将int
add
转换为十六进制值(稍后转换为字符串)。但是,当我在调试期间查看变量时,它会将其显示为字符串“add16”。我可能做错了什么

for (int add = 0; add <= 0xfffff; )
{
    for (int X = 0; X <= 15; X++)
    {
        string address = add.ToString("add16");
        addr = Convert.ToString(address);
        port.WriteLine(String.Format("WRBK:{0}:{1}", addr, parts[X]));
        add++;
    } 
}

for(int add=0;add有一个简单且非常方便的方法,它接受一个整数并以十六进制表示法返回它的字符串表示形式

string address = Convert.ToString(add, 16);
所以,也许,您的内部循环可以重写为

port.WriteLine(String.Format("WRBK:{0}:{1}", Convert.ToString(add++, 16), parts[X]));
使用简化为

port.WriteLine(String.Format("WRBK:{0:X}:{1}", add++, parts[X]));

您可以告诉.NET的
String.Format
对整数使用十六进制输出,消除任何代码到十六进制的转换,使用:

port.WriteLine(String.Format("WRBK:{0:X}:{1}", add, parts[X]));

这里的其他答案都会起作用,但我建议您仔细查看,以了解您的方式不起作用的原因。您可以使用
ToString()
从int中获取十六进制字符串,但必须以正确的格式传递字符串,例如
add.ToString(“X”)
。我要指出,您不能“将int转换为hex”,您只能将其转换为十六进制字符串。非常有效。谢谢。