这是我在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++;
}
}
答案 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]));