使用位运算进行权限控制

 使用位运算进行权限控制非常普遍。

  如:

  0000 表示初始化,

  0001 表示新增,

  0010 表示编辑,

  0100 表示更新,

  1000 表示查询。。。。。。

  使用2的次方表示各个权限值

  当给用户赋权限时采用按位或运算 |

  如 赋查询,新增权限 : 0000 | 1000 | 0001 = 10001,最后把各个权限进行或运算之后的值存在用户的权限值authority里面。

  当判断用户是否有某个操作的权限则使用按位与运算 & ,如判断是否有新增权限:authority & 0001 ;

  移除用户某个操作权限使用按位与运算和非运算,如:移除编辑权限:authority & ~0010;