我在看书的时候看到的 
int myColor=0;
bool containsRed;
myColor = myColor | 2; //add green bit,myColor now stores 010
myColor = myColor | 4; //add red bit,myColor now stroes 110
containsRed = (myColor & 4) == 4 //Check value of red bit
书上说这种技术特别适合于同时检查多个位的值
有没有知道是什么算法?

解决方案 »

  1.   

    containsRed = (myColor & 4) == 4;觉得有点问题, & 4和== 4都是在判断,110中的第一个1。所以我觉得应该是containsRed = (myColor & 4) == 2
    或者containsRed = (myColor & 2) == 4
      

  2.   

    不好意思我搞错了是containsRed = (myColor 异或 4) == 2 
    或者containsRed = (myColor 异或 2) == 4
      

  3.   

    为什么用位运算可以检测myColor为4呢?
      

  4.   

    这个在计算机原理里面讲了很多的,
    主要是“|”操作,和“&”操作,
    比如有两个数
    A= 11110000
    B= 00001111A|B = 11111111
    A&B = 00000000