用二进制实现状态叠加

假如使用二进制的 111 来表示增、删、改 这三个权限。这时,在数据表中我们就可以用一个整数来表示一个用户所拥有的权限。

权限
4
2
1

相关二进制操作

  • 增加权限
    假如原来的权限是 000 我们想添加一个 删除权限 可以用原来的权限值跟2进行 运算 0|2 = 2 转换成二进制 010 如果原来有这个权限,进行同样的运算结果不变
  • 查权限
    当我们想知道原来有没有这个权限时,可使用 运算 2&2=2 2&4=0 结果不为 0 就表示有这个权限
  • 删除某一个权限
    首先对原权限值取反,再跟要去掉的权限进行 运算,最后再取反就可以了
>>> ~2
-3
>>> -3|2
-1
>>> ~-1
0

python交互模式

猜你喜欢

转载自blog.csdn.net/wang_jiapeng/article/details/82597058