按位运算,0&1=0,0&0=0,1&1=1,1&0=0;
a=0xab,用二进制表示是10101011,
b=20,用二进制表示是  00010100,
a&=b,就是,a= a&b, a=00000000=0;
a^=a,就是,a= a^a,a=0;,
b,不变。
x>>y,就是x*(2^y),x<<=y就是x=x/(2^y);

解决方案 »

  1.   

    a=10101011(bin)
    b=00010100(bin)
    所以 a&b=00000000
    这只是一个逻辑"与"的问题
     & | 0 | 1 | 
    ---+---+---+
     0 | 0 | 0 |
    ---+---+---+
     1 | 0 | 1 |
    ---+---+---+后面的就容易了
      

  2.   

    a(0xab)的二进制为10101011
    b(20)  的二进制为00010100a与b 的各位相比,没有1,所以a&=b 的结果为0
      

  3.   

    比如:
      00110101 
    & 01010101
    = 00010101

      00110101 
    | 01010101
    = 01110101
      

  4.   

    那mrh123()大大回答的
     x>>y,就是x*(2^y),x<<=y就是x=x/(2^y);
    x<<=y就是x=x/(2^y);
    这个是怎么来得?>>和<<只是移位操作符,怎么变成了x*(2^y)和x=x/(2^y);
      

  5.   

    给你留言了。
    2^y的意思是2的y次幂,不是2与y相按位异或运算。