平时开发是状态判断比较麻烦,有时数据库可能会设置多个字段或一个字段多个值来满足要求。管理维护太繁琐,最近项目中需要判断业务流程运行状态,我们就用二进制位(8位)来设置流程的状态。
当然上述所说与标题里的位与(或)没多大关系,接下来慢慢分析二进制位与(或)如何用户权限管理。
假如: 1:权限1;2:权限2;4:权限3;8:权限4……
int num=1|2 // num权限值( 拥有 权限1和权限2)
那么如何是否有权限3, so 可以使用num&4判断结果是否大于0(大于0则具有权限3否则没有该权限)
上述列子:
位或:1|2----> 0001 --->权限1
0010 ---->权限2
-----------
0011
位与 0011 ---->num
0100 ----->权限3
----------------
0000
结果很明显,而且用起来相当方便,以前确实忽略了位运算。