以下代码什么意思
与或,到底是怎样
   
代码一:
 private void setBooleanFlag(int flag, boolean value) {
        if (value) {
            mGroupFlags |= flag;
        } else {
            mGroupFlags &= ~flag;
        }
    }代码二:
if((mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0)
{}

解决方案 »

  1.   

    举例子,如果flag表示成二进制是101,
    mGroupFlags |= flag,那么它的意思就是分别在mGroupFlags 的二进制表示的第0位和第2位置为1.
    mGroupFlags &= ~flag。是把第0位和第2位置为0.
    if((mGroupFlags & falg)!=0)是判断第0位和第2是否都为0.
    总之,它总和flag的二进制表示的带1的位有关系。
      

  2.   

    (mGroupFlags & falg)!=0表示第0位和第2位都不为0.
      

  3.   

    你应该这么理解,,if语句块里面是进行或运算。else语句块是进行与非运算。
      

  4.   

    这是android框架的源码,
    按2楼的说明
    大概就是
    a=100000
    b=10000
    flag=1mGroupFlags|=flag就是10000+1了是不是?
    这不是我第一次看到这种写法,以前06年写vb的时候也见过二进制的与,或,都能理解,如果慢慢理解的话,可我毕竟不是电脑啊这样写法有什么好处呢,又不好理解,