const int WM_KEYDOWN = 0x000D;
Console.WriteLine(WM_KEYDOWN.ToString());
输出的结果是13

const int temp = 13;
Console.WriteLine(temp.ToString("x"));
输出结果确实D
难道0x000D不是16进制吗与D有什么区别

解决方案 »

  1.   

    ToString("x")的意思就是转换成16进制表示,13的16进制是D,有什么问题吗
      

  2.   

    const int WM_KEYDOWN = 0x000D;
    Console.WriteLine(WM_KEYDOWN.ToString());
    const int temp = 13;
    Console.WriteLine("{0:X}",temp.ToString());输出的都是13
      

  3.   

    const int temp = 13; 
    Console.WriteLine("{0:X}",temp); 
    输出的是D,
    lz好像有点大惊小怪了^_^..
      

  4.   

    那0x000D表示什么,为什么不直接定义const int WM_KEYDOWN = D
      

  5.   

    0x000D和D都是十六进制的13,这点必须明确,你可以选择任意的方式,这个应该在使用的时候都是正确的,只是你在使用Tostring(“x”)的时候,系统选择了后者作为转化的结果罢了,并非什么怪事~请楼主见解 
      

  6.   

    0x000D和D 是一样的。
    Console.WriteLine("0x"+temp.ToString("x4"));