用二进制实现状态叠加

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

权限
4
2
1

相关二进制操作

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

python交互模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值