枚举中的位运算

为什么枚举中位运算都可以使用并运算?

1.  什么是枚举中的位运算?

例如

int a = 1 << 0; //1左移0位    1*2^0 = 1;

int b = 1 << 1; //1左移1位   1*2^1 = 2;

int c = 1 << 2; //1左移2位   1*2^2 = 4;

int d = 1 << 3; //1左移3位   1*2^3 = 8;

并运算

a | b

01

10

--------------

11 ==1+2

int value  = a | b;

NSLog(@"%d,%d,%d,%d",value & a,value & b,value & c,value & d);

//结果为0则不包含,结果为0则不包含

//事件的枚举

[_TextF addTarget:self action:@selector(text) forControlEvents:UIControlEventEditingDidBegin];

[_TextF addTarget:self action:@selector(text) forControlEvents:UIControlEventEditingChanged];

//将上面两个事件合并如下

[_TextF addTarget:self action:@selector(text) forControlEvents:UIControlEventEditingDidBegin | UIControlEventEditingChanged];

}

//调用监听方法

-(void)text

{

NSLog(@"文本框开始编辑或者文字开始改变");

/*

在内部解析是否包含UIControlEventEditingDidBegin,UIControlEventEditingChanged

步骤:1.UIControlEventEditingDidBegin | UIControlEventEditingChanged =X;

2,判断NSLog(@"%d",X & UIControlEventEditingDidBegin); 结果为0则不包含,结果非0则包含

*/

}

时间: 2024-08-04 11:59:03

枚举中的位运算的相关文章

C#学习笔记-----C#枚举中的位运算权限分配

什么是位运算 常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 01 & 00 = 00; 2 01 | 00 = 01; 3 ~01 =0 0; 运用在权限设计中 先建立一个枚举表示所有的权限管理操作: 1 [Flags] 2 public enum Permissions 3 { 4 Insert = 1, 5 Delete = 2, 6 Update = 4, 7 Query = 8 8 } [Flags]表示该枚举可以支持C#位运算. 枚举的每一项值, 我们用2的n次

C#枚举中的位运算权限分配

什么是位运算 常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 01 & 00 = 00; 2 01 | 00 = 01; 3 ~01 =0 0; 运用在权限设计中 先建立一个枚举表示所有的权限管理操作: 1 [Flags] 2 public enum Permissions 3 { 4 Insert = 1, 5 Delete = 2, 6 Update = 4, 7 Query = 8 8 } [Flags]表示该枚举可以支持C#位运算. 枚举的每一项值, 我们用2的n次

C#枚举中的位运算权限分配浅谈

常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 & 0 = 0, 1 | 0 = 1, ~1 = 0 在设计权限时, 我们可以把权限管理操作转换为C#位运算来处理. 第一步, 先建立一个枚举表示所有的权限管理操作: [Flags] public enum Permissions { Insert = 1, Delete = 2, Update = 4, Query = 8 } [Flags]表示该枚举可以支持C#位运算, 而枚举的每一项值, 我们用2的n次方来赋值, 这样表

枚举类型与位运算

目录 枚举 位运算 一.枚举 枚举类型是名称与值的组合. 枚举类型是值类型. 1.为什么枚举类型是名称与值得组合?有时我只看到键名称,没有看到相对的值. public enum Options { Insert, Update, Save, Delete, Query } 编译器会给上面补充完整 public enum Options { Insert=0, Update=1, Save=2, Delete=3, Query=4 } 默认从0开始,依次赋值. 2.为什么枚举类型是值类型 因为Sy

C#位运算示例和enum中的位运算

今天在项目中遇到按位或组合权限串的问题: 首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了. 如: purview = k2|k3; // 赋给添加和删除权限 当需要判断在权限串中是否拥有某一权限时,就需要进行按位与. 如: if((purview & k1) >0)//判断此权限串是否拥有添加权限,结果>0 则进入if语句代码块中 { ....

关于c语言中的位运算。。。

位运算是一种针对二进制数的一种运算 位运算 共有六种 都有其对应得操作符号 &      (and)      位于 |        (or)         位或 ~      (not)        取反 ^       (xor)        异或 >>    (shr)    右移一位 <<    (shl)     左移一位 运算说明: === 1. and运算 === and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位.这可

java中的位运算

刚才在imooc看php基础发现一个特别容易让我们理解的描述[关于异或运算的] 之前学习java的时候 位运算有4种,当时是这样记录的: &  按位与 (and) 两个对应二进制都为1则为1,其余全为0 |   按位或(or) 两个二进制数有一个为1则为1,只有两个0才为0 ~  按位非(NOT) 二进制中取反 ^  按位异或(XOR) 两个二进制中相同为则为0,不同则为1             其实最难以理解的就是这个异或运算. 直接搬过来(原网址点我): 我们可以从投票的角度来理解逻辑运算

C/C++中的位运算

位运算     位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有:     &(按位与).|(按位或).^(按位异或).~ (按位取反). 其中,按位取反运算符是单目运算符,其余均为双目运算符.     位运算符的优先级从高到低,依次为~.&.^.|, 其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符.    (1)按位与运算符(&)

嵌入式c语言中的位运算

位运算在嵌入中也是一个重要的点,下面就简单介绍和举一些有用的例子,如果有不足的话,请补充,废话不多说,直接开始! 位运算操作符有6个:&,|,^,~,>>,<< &   只有1&1才等于1,其它都为0 |   只有0|0才等于0,其它都为1 ^   异或,相异为1,相同为0,用来检查两个操作数的某对应位是否一致 ~   非,按位反,任何数的非与数本身相加都等于-1(如果不懂的话,请查看下一篇补码) >>  左移,相当乘以2-->左移之后,后