在系统中的许多Enum也是这么使用的,如UIViewAutoresizing、UIViewAnimationOptions等。
为什么要在枚举中使用位操作符?
- 在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)
-
可以给一个属性同时设置多个值
总结
- ~(按位取反):对目标数字按位取反;在枚举中用于剔除某个值
-
|(按位或):对两个目标数字同位置上数字进行或运算;在枚举中用于添加某个值
- &(按位与):对两个目标数字同位置上数字进行与运算;在枚举中用于判断是否包含某个值
- ^(按位异或):对两个目标数字同位置上数字进行异或运算;在枚举中置反某个值
- >>(右移):对目标数字按位右移x位
-
<<(左移):对目标数字按位左移x位
参考
- Bitwise Operators and Bit Masks










