我在网上找了好多的资料还是没有找到啊,多谢大牛的指点啊~~  小弟不胜感激~小弟有两句话不明白啊:
  protected int value;
value |= (1 << 8);//第一句话,不明白含义
value |= (1 << 18) | (1 << 20) | (1 << 22) | (1 << 24) | (1 << 28);//第二句话,不明白含义
麻烦给指点一下啊~~

解决方案 »

  1.   

    位运算了。1 << 1 == 2
    1 << 2 == 4
    1 << 3 == 8...
      

  2.   

    value |= (1 << 8);//第一句话,不明白含义
    其实就是:
    value = value | (1 << 8); // | 是位运算符:或; <<是位运算符左移,每次左移相当于乘2
    也即相当于:
    value = value | 0x100;
    第二句话也是类似的了,没啥特殊差异,自行理解吧。
      

  3.   

    << 这是位运算的左移符号, 是按照进制位进行左移.|= 这个是什么???   求解答.谢~
      

  4.   

    |= 和 += -= *= /=意思一样的。a |= b 等价于 a = a | b
      

  5.   

    value |= (1 << 8);//这句和
    value = value | (1<<8);//是一样的
    1<<8表示1左移8位,就是100000000=256,“|”是逻辑“或”运算。
      

  6.   


    看了我3楼的解释还不理解么?value |= (1 << 8);//第一句话,不明白含义
    其实就是:
    value = value | (1 << 8); // | 是位运算符:或; <<是位运算符左移,每次左移相当于乘2
    也即相当于:
    value = value | 0x100;
    如果: value 初始值为 1;
      value |= (1 << 8);
    结果:value = 0x100 | 0x1 = 0x101 = 257如果: value 初始值为 15;
      value |= (1 << 8);
    结果:value = 0x100 | 0xF = 0x10F = 271如果: value 初始值为 256;
      value |= (1 << 8);
    结果:value = 0x100 | 0x100 = 0x100 = 256
    看来楼主对 位运算不太熟悉。
      

  7.   

    楼上已经解答了。
    value |= (1 << 8);//第一句话,不明白含义
    目的是value的第八位 置1