php权限二进制,了解二进制权限,二进制权限的应用(PHP演示)

  • Post author:
  • Post category:php


一, 二进制的逻辑运算

1. “&” 与运算 相同位的值都为1结果就为1,有一位为0结果就为0。

举例1:

1&1=1

1&0=0

0&1=0

0&0=0

举例2:

二进制1

110010

二进制2

001010

结果

000010

2. “|” 或运算 相同位的值有一个为1结果就为1,全部为0结果为0。

举例1:

1&1=1

1&0=1

0&1=1

0&0=0

举例2:

二进制1

110010

二进制2

001010

结果

111010

3. “^” 异或运算 相同位的值都相等就为0,有一位不同就为1。

举例1:

0&1=1

0&0=0

1&1=0

1&0=1

举例2:

二进制1

110010

二进制2

001010

结果

111000

4. “~” 非运算(取反运算,这个叫法好像都对) 将二进值位上的值换成相反的值

举例1:

~1=0

~0=1

5. “<

举例1:

左移2位

结果

110010 << 2

001000

6. “>>” 右移 将二进制向右移动N位,然后在左侧补全N位(正数补0,负数补1)。

举例1:

右移2位

结果

110010 >> 2

001100

二,了解和应用

d07af64baec618636c6b62217a1c30ed.png

PHP中“&”和“^”运算的两个值如果都是字符串,则将对组成字符串的字符的ASCII值进行运算,结果将是字符串。

在所有其他情况下,两个操作数都将转换为整数,结果将为整数。

“~” 运算符的操作数是字符串,则将对组成字符串的字符的ASCII值执行操作,结果将是字符串,否则操作数和结果将被视为整数。

二进制权限就是每个权限都用一个二进制数去表示,例如Linux中的读、写、运行,对应着4、2、1。

二进制权限可代表的权限种类受限于程序语言的类型长度,即可代表2^N种。

PHP演示:

输出结果

b8be09d3065de4bb5fe1ada4e13732a7.png