C#将int转换为十六进制

时间:2015-02-13 21:52:12

标签: c#

这是我在Visual Studio中编写的代码的一小部分。 当我访问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++;
    } 
}

2 个答案:

答案 0 :(得分:2)

有一个简单且非常方便的方法,它接受一个整数并将其表示形式返回为十六进制表示法的字符串

string address = Convert.ToString(add, 16);

所以,也许,你的内部循环可以重写为

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

并使用standard numeric format strings specifiers缩减为

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

答案 1 :(得分:2)

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

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