按位系统的局限性

时间:2012-11-08 16:06:47

标签: php bit-manipulation

我刚刚接受了一些关于Bits如何工作的在线教程。虽然我有几个问题。我在互联网上搜索但没找到我要找的东西。我可能一直在寻找一些不正确的关键词。

假设我希望使用按位构建选项或权限系统(我认为这是正确的术语)。我有以下犹豫:

1)使用&时是否可能以碰撞结束?等?

2)如果存在碰撞机会,我在设计权限时应采取哪些步骤?如果我拥有相当大的权限集,权限号码是否会更改,例如超过500?

希望我能正确地解决问题,如果没有,请告诉我,我会尝试改写。

EDIT :: 我认为这里的类似问题已得到解答

User role permissions for different modules using bitwise operators

1 个答案:

答案 0 :(得分:1)

  1. 什么样的碰撞?
  2. 对于500种不同的权限,您必须存储500位。现在没有可以直接处理500 +位值的计算机。对于位系统,您基本上只能使用底层cpu可以提供的功能,例如: 8,16,32,64位大小的值。除此之外的任何东西都必须分成多个不同的内存块。
  3. e.g。

    permission_flags && (1 << 475)
    

    在现有的每个平台上都会失败,因为一旦你转过第63位,你就会超过cpu可以直接支持的东西。