Binary 使用按位权限时,如何正确地使权限无效?

Binary 使用按位权限时,如何正确地使权限无效?,binary,bit-manipulation,bitwise-operators,Binary,Bit Manipulation,Bitwise Operators,好的,这是我计划做的要点 我要两张桌子。一个具有“等级”或“角色”,另一个具有用户。我想以角色/用户为基础分配权限,以用户为基础收回权限 所以,为了一般目的,让我们假设我们有$role\u can$user\u can和$user\u cant 我知道,对于指定的目的,我们可以使用按位或$权限=($role_can |$user_can),这将两者结合起来 现在,我想在那之后收回某些权限。这通常是使用位异或完成的,但我想让它成为傻瓜证明。换句话说,我不想通过排除他们不拥有的权限而意外地授予他们访

好的,这是我计划做的要点

我要两张桌子。一个具有“等级”或“角色”,另一个具有用户。我想以角色/用户为基础分配权限,以用户为基础收回权限

所以,为了一般目的,让我们假设我们有$role\u can$user\u can和$user\u cant

我知道,对于指定的目的,我们可以使用按位或$权限=($role_can |$user_can),这将两者结合起来

现在,我想在那之后收回某些权限。这通常是使用位异或完成的,但我想让它成为傻瓜证明。换句话说,我不想通过排除他们不拥有的权限而意外地授予他们访问权限

最好的方法是什么

传统上($role_-can |$user_-can)^$user_-cant)-但它不适用于白痴校对

我对比特运算还是相当陌生的,所以如果答案很明显的话,请对我放松点

我使用的是PHP,但是可以接受的答案可以是任何语言/伪代码,只要它能够工作并且易于理解

谢谢。

您可以使用


而不是。非常感谢。我试过各种不同的组合,但我在心里想不出来。我以前认为NOT不起作用,因为它会把其他所有事情都搞错,但我知道它是如何与AND结合使用的。非常感谢。
(($role_can | $user_can) & ~$user_cant)