iOS 枚举位移

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

一、概念

枚举值它是一个整形(int)并且,它不参与内存的占用和释放,枚举定义变量即可直接使用,不用初始化.

在代码中使用枚举的目的只有一个,那就是增加代码的可读性.

二普通枚举

typedefNS_ENUM(NSInteger, Test1)

{

//以下是枚举成员

Test1A =0,

Test1B =1,

Test1C =2,

Test1D =3

};

三、枚举的定义还支持位运算

typedefNS_ENUM(NSInteger, Test)

{

TestA       =1,//1   1   1或者1 << 0,

TestB       =1<<1,//2   2   10转换成10进制2

TestC       =1<<2,//4   3   100转换成10进制4

TestD       =1<<3,//8   4   1000转换成10进制8

TestE       =1<<4//16  5   10000转换成10进制16

};

注意:等于号后面必须等于1

四、位运算优点:

什么时候要用到这种方式呢?

那就是一个枚举变量可能要代表多个枚举值的时候.其实给一个枚举变量赋予多个枚举值的时候,原理只是把各个枚举值加起来罢了.

当加起来以后,就获取了一个新的值,那么为了保证这个值的唯一性,这个时候就体现了位运算的重要作用.

位运算可以确保枚举值组合的唯一性.

因为位运算的计算方式是将二进制转换成十进制,也就是说,枚举值里面存取的是计算后的十进制值.

例如:

通过上面的位运算方式设定好枚举以后,打印出来的枚举值分别是:124816

这5个数字,无论你如何组合在一起,也不会产生两个同样的数字.

手工的去创建位运算枚举,还有稍微有点花时间的,好在Apple已经为我们准备的uint.

谢谢!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是枚举 在程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言...
    Japho阅读 7,665评论 12 25
  • 题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位...
    quiterr阅读 236评论 0 0
  • 我是日记星球239号星宝宝,来自深圳的叶子。我是日记星球第五期的学员,我相信日积月累的力量,最美的年纪遇到最美的自...
    水晶妈咪阅读 258评论 1 1