android源码中&运算符的妙用
来源:互联网 发布:深圳知金教育怎么样 编辑:程序博客网 时间:2024/06/01 13:27
祭出代码:
uint32_t device2 = AUDIO_DEVICE_NONE;if (device2 == AUDIO_DEVICE_NONE) { device2 = availableOutputDevicesType & AUDIO_DEVICE_OUT_WIRED_HEADSET;}AUDIO_DEVICE_OUT_WIRED_HEADSET = 0x4,
某一时刻。availableOutputDevicesType的值为65699
转换成二进制之后是:10000000000100001
每一个有1的位置都代表一种可用的输出设备,比如SPEAKER(扬声器),蓝牙耳机,有线耳机等等。
availableOutputDevicesType的意思就是针对手机来说,目前可以用来做声音输出的设备有哪些。
device2 = availableOutputDevicesType & AUDIO_DEVICE_OUT_WIRED_HEADSET;这行代码的意思:
1.0x4 & 10000000000100001
意思就是判断AUDIO_DEVICE_OUT_WIRED_HEADSET这种设备是否在availableOutputDevicesType里头,是否是可用的。
如果可用呢,结果就是AUDIO_DEVICE_OUT_WIRED_HEADSET,如果不可用,结果就是0.
在学到这个巧妙的技法之前,我最愚蠢写法可能是:
设备类型用枚举,然后专门定义个数组来存储当前可用的设备。判断时候用for循环挨个比较。。。
说起来都烦。这种写法实在是精妙!!!
android源码里头有大量的这种写法,用位来标记各种属性。
都不知道怎么结尾了,就这么地吧。
0 0
- android源码中&运算符的妙用
- 三元运算符的妙用
- JS中与或运算的妙用
- 程序中位运算的妙用
- Java中位运算符妙用
- 主题:js运算符“||”和“&&”的妙用
- 异或运算符(xor) 的妙用
- C++运算符重载的妙用
- Python中三目运算符的妙用
- 位运算的妙用
- 位运算的妙用
- 位运算的妙用
- 位运算的妙用
- js 运算符 || && 妙用
- javascript 运算符妙用
- js 运算符 || && 妙用
- android开发中ListView的妙用之:下拉刷新与到底部载入更多源码
- android系统中sendevent的妙用
- android recyclerView Binary XML file line #7: Error inflating class android.support.v7.widget.Recycl
- 三消数组的拼接
- Android 的 Notification 使用总结
- Android编译系统详解(三)
- 自定义圆形图片、圆角图片,椭圆图片
- android源码中&运算符的妙用
- python学习(3)
- C语言gdb分析段错误的core文件
- 数据库Oracle、Sql Server单表树形结构数据查询语句
- JS跨域问题
- Servlet生命周期与工作原理
- Android基础:HttpURLConnection
- 18121 排排坐看电影
- 设计模式——建造者模式