iOS 枚举位移

来源:互联网 发布:linux root防破解 编辑:程序博客网 时间:2024/05/29 03:30

简介

在iOS开发中,我们在Apple SDK和第三方SDK中经常可以看到这样的位移枚举值,作用呢大家都知道可以同时使用多个,下面我说下位移运算符所需要使用到的一些预算符,并写一个简单示例


系统.png
系统.png

需要使用的运算符

  • <<
    对二进制操作,进行整体向左位移操作末尾补0操作
    如:
    3//二进制为0011
    6 = 3<<1//二进制为0110
    12 = 3<<2//二进制为1100
    {要位移的数}<<{位移的位数}

  • |
    对二进制操作,将二进制合并,有1则为1
    6(0110) = 2(0010)|4(0100)

  • &
    对二进制操作,将二进制合并,同为1则为1
    2(0010) = 2(0010)|6(0110)

定义枚举

typedef NS_ENUM(NSUInteger, WebViewType) {    WebViewTypeNor           = 1,                  //0001   1    WebViewTypeTest1         = WebViewTypeNor << 1,//0010   2    WebViewTypeTest2         = WebViewTypeNor << 2,//0100   4    WebViewTypeTest3         = WebViewTypeNor << 3,//1000   8};

使用枚举

WebViewType webType = WebViewTypeTest1 | WebViewTypeTest2;if (webType & WebViewTypeNor) {      NSLog(@"this is WebViewTypeNor");}if (webType & WebViewTypeTest1) {      NSLog(@"this is WebViewTypeTest1");}if (webType & WebViewTypeTest2) {      NSLog(@"this is WebViewTypeTest2");}
输出.png
输出.png