美文网首页
iOS枚举中的左移意义

iOS枚举中的左移意义

作者: melonsong | 来源:发表于2017-11-16 16:34 被阅读19次

这是从http://blog.csdn.net/u014205965/article/details/45913747 看到的,很有帮助,废话不多说,直接上代码:

#import "ViewController.h"  
  
// 因为"位运算"的计算方式是将二进制转换成十进制,也就是说,枚举值里面存取的是计算后的十进制值.  
typedef NS_OPTIONS(NSUInteger, DirectionType) {  
    DirectionTypeUp = 1 << 0,   // 十进制1  
    DirectionTypeLeft = 1 << 1, // 十进制2  
    DirectionTypeDown = 1 << 2, // 十进制4  
    DirectionTypeRight = 1 << 3,// 十进制8  
};  
  
@interface ViewController ()  
  
@end  
  
@implementation ViewController  
  
- (void)viewDidLoad {  
    [super viewDidLoad];  
      
    [self demoTest:DirectionTypeUp | DirectionTypeLeft | DirectionTypeRight];  
    /* 
     DirectionTypeUp    表示 0001 
     DirectionTypeLeft  表示 0010 
     DirectionTypeRight 表示 1000 
      
     按位或之后变成 1011 (十进制表示 11) 
     */  
}  
  
- (void)demoTest:(DirectionType)options{  
      
    /* 
     因为这里options 表示 1011 ,然后进行按位与 
     */  
    if (options & DirectionTypeUp) { // 1011 & 0001 按位与为 0001  
        NSLog(@"向上");  
    }  
    if (options & DirectionTypeLeft) { // 1011 & 0010 按位与为 0010  
        NSLog(@"向左");  
    }  
    if (options & DirectionTypeDown) { // 1011 & 0100 按位与为 0000  
        NSLog(@"向下");  
    }  
    if (options & DirectionTypeRight) { // 1011 & 1000 按位与为 1000  
        NSLog(@"向右");  
    }  
      
    /* 
     所以最后打印: 向上 向左 向右 
     */  
}  
  
@end

相关文章

  • iOS枚举中的左移意义

    这是从http://blog.csdn.net/u014205965/article/details/459137...

  • 为什么NS_OPTIONS要使用<<左移,左移这种写法和 NS_

    iOS本身定义的枚举里面经常会使用左移(<<)来定义枚举的值,一开始我还不懂,看了下面的原理就明白了,文章出处下面...

  • 02-02、位运算和枚举

    我看iOS本身定义的枚举里面经常会使用左移(<<)来定义枚举的值,一开始我还不懂为啥要这么定义。这么处理的逻辑跟i...

  • 位运算和枚举

    我看iOS本身定义的枚举里面经常会使用左移(<<)来定义枚举的值,一开始我还不懂为啥要这么定义。这么处理的逻辑跟i...

  • iOS13 presentViewController 展示方式

    在iOS 13中,UIViewcontroller 的 modalPresentationStyle 枚举类型中多...

  • iOS 的type 类(class) 与枚举(enum)

    iOS 中枚举 enum 用的很频繁,简单实用,switch if 判断不易出错。但是随着项目的不断扩大,枚举...

  • iOS 位枚举

    在 iOS 开发中,我们使用系统的枚举定义的时候,经常可以看到位枚举: 需要掌握位枚举,我们需要先了解位运算 和 ...

  • Swift 5.1 (8) - 枚举类型

    级别: ★☆☆☆☆标签:「iOS」「Swift 5.1」「枚举」「迭代枚举」「枚举关联值」「递归枚举」作者: 沐灵...

  • ios中的枚举类型

    使用枚举和宏都可以使得程序简洁和易于修改。但在以下情况枚举是优于宏的: 当变量多的时候,枚举比宏更加容易修改,而且...

  • 关于枚举

    C语言中的另一种数据类型---枚举类型。枚举类型在iOS中也是很常用的 枚举的概念 枚举是C语言中的一种基本数据类...

网友评论

      本文标题:iOS枚举中的左移意义

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