美文网首页
位移操作枚举定义

位移操作枚举定义

作者: 三岁就很乖 | 来源:发表于2016-08-10 15:29 被阅读145次

枚举的定义还支持位运算的方式定义,如下: 等于号后面必须等于1

typedef NS_ENUM(NSInteger, Test) {

    TestA = 1, //1 1 1

    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 2 4 8 16 这5个数字,无论你如何组合在一起,也不会产生两个同样的数字.

逻辑与(&)有0则为0 1 & 0 = 0
逻辑或(|) 有1则为1 1 | 0 = 1, 1 ^ 0 = 1

相关文章

  • 位移操作枚举定义

    枚举的定义还支持位运算的方式定义,如下: 等于号后面必须等于1 什么时候要用到这种方式呢? 那就是一个枚举变量可能...

  • 位移枚举

    位移枚举 C语言枚举定义 苹果创建枚举的定义方式

  • ios enum NS_ENUM,NS_OPTIONS

    一般情况下我们在开发中可以采用C风格的enum 关键字定义枚举类型 位移动操作枚举定义 枚举值一般是4个字节的in...

  • iOS枚举

    在iOS中定义枚举可以帮我们减轻不少工作枚举定义有两种一种是数值 一种是按照位移 位移的用处在于可以组合使用,比如...

  • swift中定义位移枚举

    swift 是没有类似OC中多个位移枚举做集成。所以就需要定义一个OC的桥接文件来做这件事情。这里拿 NSKeyV...

  • 位移枚举

    位移枚举和普通枚举的区别位移枚举可以传递多个参数,普通的枚举只能传递单个参数 举个?在SDWebimage里有的地...

  • 位移枚举简单介绍

    枚举的三种实现方式 第一种枚举 第二种枚举定义类型 ** 第三种枚举** 位移枚举在这感谢下原文作者[天狐博客]|...

  • Swift&OC位移枚举区别

    1、Swift 位移枚举写法 2、ObjC位移枚举写法 相比之下ObjC更加简单明了。

  • 位移枚举

    枚举的其中一种方式:位移枚举,直接上代码,看完基本就懂了 写一个方法: 在viewDidLoad方法中调用本方法:

  • 位移枚举

    位移枚举 一. OC中常见的三种枚举 C语言枚举 // C语言枚举 typedef enum : NSUInteg...

网友评论

      本文标题:位移操作枚举定义

      本文链接:https://www.haomeiwen.com/subject/jvljsttx.html