了解二进制权限,二进制权限的应用(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. “<<” 左移 将二进制向左移动N位,然后用0在右侧补全N位。

举例1:

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

举例1:

右移2位 结果
110010 >> 2 001100

二,了解和应用

PHP中“&”和“^”运算的两个值如果都是字符串,则将对组成字符串的字符的ASCII值进行运算,结果将是字符串。
在所有其他情况下,两个操作数都将转换为整数,结果将为整数。

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

继续阅读“了解二进制权限,二进制权限的应用(PHP演示)”