int a = 0x0001;  //为什么要这样写,而不直接写数字??

解决方案 »

  1.   

    你当然也可以写成这样int a=1;
      

  2.   

    前面标记个 0x代表这个数字式 16进制数字而已
    这是语法编辑器的一种表达方式 C语言就有了 int a=0xffff;
    等于多少?
     你把ffff变成10进制就知道了
      

  3.   

    只是不同的进制表示而已啊。看你的需求了,有些程序中要用16进制或8进制,就可以直接这样写,免得去转换,麻烦呀像下面一样,都是可以的。int a = 10 ; //十进制   
    int b = 0x f8 ;//16进制
    int c = 075  ; //8进制
      

  4.   

    恩,看特殊情况吧,在GDI+里面喜欢用16进制来表示颜色值
    都可以吧,看个人和需求
      

  5.   

    比如我定义:[Flags]
    enum SSS
    {
     A=0x0001,
     B=0x0010,
     C=0x0100,
     D=0x1000
    }
    就很明白,如果你直接写数字
    [Flags]
    enum SSS
    {
     A=1,
     B=2,
     C=4,
     D=8
    }
    就不是很明了。主要就用在这种作为标记的数字上,这些标记可以通过& |做叠加或拆分。
      

  6.   

    16进制 的数字长度要比10进制短哈,例如:0xff==255
      

  7.   

    只要那个16进制不超出int的储值范围就可以