php - 使用 unix 权限等属性组合传递变量的最佳方式

标签 php algorithm math

为模糊的标题道歉。

传递有限数量的属性(例如读、写、执行……)的最佳方式是什么?我想我可以像这些权限那样做 - 计算分配给属性的一些数字的总和 - 1,2,4,8,16 ......这是最容易做到的吗?我应该使用什么算法来获得加数- 例如,如果我有 17 - 我如何计算这是 16 和 1?

谢谢。

最佳答案

你可以使用 Bitwise Operators .这样你就可以比较整数的实际位,这是它的工作原理:

Bit Pattern
8 4 2 1
1 0 0 0 = 8
0 1 1 1 = 7
0 1 1 0 = 6
0 1 0 1 = 5
0 1 0 0 = 4
0 0 1 1 = 3
0 0 1 0 = 2
0 0 0 1 = 1
0 0 0 0 = 0

所以,

6 & 4 = 4

Means 告诉我 6 和 4 中都存在的位。 比较“0 1 1 0”和“0 1 0 0”,您会发现第二位“4”是两者中唯一填充的位,因此返回 4。

或者

7 & 3 = 3

Means 显示 7 和 3 中都存在的位。 比较“0 1 1 1”和“0 0 1 1”,您会看到第三 (2) 和第四 (1) 位都填充在两者中,因此返回 3 (2 + 1)。

关于php - 使用 unix 权限等属性组合传递变量的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18741625/

相关文章:

php - JavaScript 聊天室用户名颜色

android - 这段列出支持的提供商、服务和算法的代码在 Android 上如何工作?

algorithm - 如何优化符合标准和规模目标的元素选择?

php - 莱格伯排序的问题

php - mysql pconnect ,当它关闭连接时

php - 在php中创建定时器算法

math - 任意旋转中两条抛物线相交的代码或公式

math - 我在这个计算 PI 的 Scheme 程序中找不到我的错误

algorithm - 从一组 x 和 y 中选择 k 项以满足特定条件

php - 如何在 PHP 中显示 MSSQL varbinary(3072) 图像?