JAVA 代码扫盲

avi9111 2012-12-23 03:44:51
以下代码什么意思
与或,到底是怎样

代码一:
private void setBooleanFlag(int flag, boolean value) {
if (value) {
mGroupFlags |= flag;
} else {
mGroupFlags &= ~flag;
}
}

代码二:
if((mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0)
{}
...全文
348 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
caodongfang126 2012-12-25
  • 打赏
  • 举报
回复
Fuuqiu 2012-12-25
  • 打赏
  • 举报
回复
全是高手啊 幸会幸会
avi9111 2012-12-25
  • 打赏
  • 举报
回复
真的看一次忘一次
avi9111 2012-12-25
  • 打赏
  • 举报
回复
这是android框架的源码, 按2楼的说明 大概就是 a=100000 b=10000 flag=1 mGroupFlags|=flag就是10000+1了是不是? 这不是我第一次看到这种写法,以前06年写vb的时候也见过 二进制的与,或,都能理解,如果慢慢理解的话,可我毕竟不是电脑啊 这样写法有什么好处呢,又不好理解,
流星陨落 2012-12-24
  • 打赏
  • 举报
回复
LZC_456 2012-12-24
  • 打赏
  • 举报
回复
输出来看看~~
lh412552703 2012-12-23
  • 打赏
  • 举报
回复
你应该这么理解,,if语句块里面是进行或运算。else语句块是进行与非运算。
anxinpid 2012-12-23
  • 打赏
  • 举报
回复
程序员一灯 2012-12-23
  • 打赏
  • 举报
回复
limit111 2012-12-23
  • 打赏
  • 举报
回复
引用 1 楼 limit111 的回复:
举例子,如果flag表示成二进制是101, mGroupFlags |= flag,那么它的意思就是分别在mGroupFlags 的二进制表示的第0位和第2位置为1. mGroupFlags &= ~flag。是把第0位和第2位置为0. if((mGroupFlags & falg)!=0)是判断第0位和第2是否都为0. 总之,它总和flag的二进……
(mGroupFlags & falg)!=0表示第0位和第2位都不为0.
limit111 2012-12-23
  • 打赏
  • 举报
回复
举例子,如果flag表示成二进制是101, mGroupFlags |= flag,那么它的意思就是分别在mGroupFlags 的二进制表示的第0位和第2位置为1. mGroupFlags &= ~flag。是把第0位和第2位置为0. if((mGroupFlags & falg)!=0)是判断第0位和第2是否都为0. 总之,它总和flag的二进制表示的带1的位有关系。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧