如何通过Objective-C的枚举学习iOS中位操作.md详解

2020-01-21 07:45:02刘景俊

在系统中的许多Enum也是这么使用的,如UIViewAutoresizing、UIViewAnimationOptions等。

为什么要在枚举中使用位操作符?

  • 在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)
  • 可以给一个属性同时设置多个值

    总结

    • ~(按位取反):对目标数字按位取反;在枚举中用于剔除某个值
    • |(按位或):对两个目标数字同位置上数字进行或运算;在枚举中用于添加某个值
      • &(按位与):对两个目标数字同位置上数字进行与运算;在枚举中用于判断是否包含某个值
      • ^(按位异或):对两个目标数字同位置上数字进行异或运算;在枚举中置反某个值
      • >>(右移):对目标数字按位右移x位
      • <<(左移):对目标数字按位左移x位

        参考