C#位运算符的实际应用
求C#位运算符的实际用或是规律,主要是下面这几个
~ 按位求补符;
^ 异或位运算符;
& 且位运算符;
| 或位运算符;
<<左移运算符
>>右移运算符
我知道& 且位运算符的一个应用,就是在权限管理系统中的一个应用
权限系统中,Role为角色,Module为模块,Permission为权限
设各权限值分别如下(2倍等比递增的关系):
1. 列表/查看 = 2
2. 新增 = 4
2. 修改 = 8
4. 删除 = 16
此时的“Role : Module : Permission”中的Permission等于上述四种操作权限中所拥有的权限值之和,比如:若某个(Role + Module)拥有查看、新增、修改、删除的权限,则其Permission=2+4+8+16=30。
下面进行权限检测,判断“(Role + Module)”所对应的Permission是否包含上述四种操作权限中的每一个。解决问题关键:使用“&”运算符。比如:
判断Permission是否包含“查看”的权限值,就用 if((Permission & 2) == 2)
判断Permission是否包含“新增”的权限值,就用 if((Permission & 4) == 4)
判断Permission是否包含“修改”的权限值,就用 if((Permission & 8) == 8)
判断Permission是否包含“删除”的权限值,就用 if((Permission & 16) == 16)
求其它位运算符的实际应用,就是在什么情况下使用,并不是位运算的原理,而是实际的应用,或在应用中的规律,求高手