Android 中经常看到View.mPrivateFlags参数进行位运算,最常见的是invalidate,touch,measure,layout,draw相关的开关设置,下来一起来看看位运算。
名称 | 符号 | 计算规则 | 计算 | 含义 |
---|---|---|---|---|
取反
|
~
| 对一个二进制数的每一位执行逻辑反操作. 使数字1成为0, 0成为1 |
a = 0100 b = 1110
~a = 1011
~b = 0001
|
a &= ~FLAG
取消此标记
|
按位或
|
|
| 处理两个长度相同的二进制数, 两个相应的二进位中只要有一个为1, 该位的结果值为1. |
a = 0100 b = 1110
a |= b
a = 1011
|
a |= FLAG
添加此标记
|
按位异或
|
^
| 对等长二进制模式按位或二进制数的每一位 执行逻辑异按位或操作. 操作的结果是如果 某位不同则该位为1, 否则该位为0. |
a = 0100 b = 1110
a ^= b
a = 1010
|
|
按位与
|
&
| 处理两个长度相同的二进制数, 两个相应的二进位都为1, 该位的结果值才为1,否则为0. |
a = 0100 b = 1110
a &= b
a = 0100
|
(a & FLAG)== FLAG
是否包含此标记
|
参考资料:
位操作基础篇之位操作全面总结
http://blog.csdn.net/morewindows/article/details/7354571
转载请注明出处:http://blog.csdn.net/love_world_/article/details/8554340
2013-04-09 更新参考资料