PHP 位运算符

本教程将详细介绍PHP中的位运算符。位运算是一种直接对整数在内存中的二进制表示进行操作的方式,这使得它们非常快速并且占用很少的处理器资源。本教程将介绍PHP支持的所有位运算符:&(AND)、|(OR)、^(XOR)、~(NOT)、<<(左移)和>>(右移)。

1. &(AND)运算符

&运算符对两个数的每一位执行AND操作,如果两个相应位都为1,则结果为1,否则为0。例如:

$a = 5; // 二进制表示: 101
$b = 3; // 二进制表示: 011

echo $a & $b; // 输出: 1,因为二进制下的 101 AND 011 得到 001

2. |(OR)运算符

|运算符对两个数的每一位执行OR操作,如果任何一个相应位为1,则结果为1。例如:

$a = 5; // 二进制表示: 101
$b = 3; // 二进制表示: 011

echo $a | $b; // 输出: 7,因为二进制下的 101 OR 011 得到 111

3. ^(XOR)运算符

^运算符对两个数的每一位执行XOR操作,如果相应位不同,则结果为1。例如:

$a = 5; // 二进制表示: 101
$b = 3; // 二进制表示: 011

echo $a ^ $b; // 输出: 6,因为二进制下的 101 XOR 011 得到 110

4. ~(NOT)运算符

~运算符对一个数执行NOT操作,它翻转了每一位的值。例如:

$a = 5; // 二进制表示: 00000101

echo ~$a; // 输出: -6,因为 NOT 00000101 得到 11111010。由于PHP是有符号的数,所以结果是一个负数。

5. <<(左移)运算符

<<运算符将第一个操作数中的位向左移动指定的位数。例如:

$a = 5; // 二进制表示: 101

echo $a << 1; // 输出: 10,因为将 101 向左移动一位得到 1010

6. >>(右移)运算符

>>运算符将第一个操作数中的位向右移动指定的位数。例如:

$a = 5; // 二进制表示: 101

echo $a >> 1; // 输出: 2,因为将 101 向右移动一位得到 10

总结来说,PHP中的位运算符提供了一种快速、高效的方式来操作整数的二进制表示。理解它们如何工作对于编写更有效和优化的代码至关重要。