以下代码什么意思
与或,到底是怎样
代码一:
private void setBooleanFlag(int flag, boolean value) {
if (value) {
mGroupFlags |= flag;
} else {
mGroupFlags &= ~flag;
}
}代码二:
if((mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0)
{}
与或,到底是怎样
代码一:
private void setBooleanFlag(int flag, boolean value) {
if (value) {
mGroupFlags |= flag;
} else {
mGroupFlags &= ~flag;
}
}代码二:
if((mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0)
{}
mGroupFlags |= flag,那么它的意思就是分别在mGroupFlags 的二进制表示的第0位和第2位置为1.
mGroupFlags &= ~flag。是把第0位和第2位置为0.
if((mGroupFlags & falg)!=0)是判断第0位和第2是否都为0.
总之,它总和flag的二进制表示的带1的位有关系。
按2楼的说明
大概就是
a=100000
b=10000
flag=1mGroupFlags|=flag就是10000+1了是不是?
这不是我第一次看到这种写法,以前06年写vb的时候也见过二进制的与,或,都能理解,如果慢慢理解的话,可我毕竟不是电脑啊这样写法有什么好处呢,又不好理解,