推荐答案
在 PHP 中,位运算符主要包括以下几种:
&
:按位与|
:按位或^
:按位异或~
:按位取反<<
:左移>>
:右移
本题详细解读
1. 按位与 (&
)
按位与运算符对两个操作数的每一位进行比较,如果两个对应的位都为 1,则结果为 1,否则为 0。
$a = 5; // 二进制 0101 $b = 3; // 二进制 0011 $result = $a & $b; // 结果为 0001 (十进制 1)
2. 按位或 (|
)
按位或运算符对两个操作数的每一位进行比较,如果两个对应的位中至少有一个为 1,则结果为 1,否则为 0。
$a = 5; // 二进制 0101 $b = 3; // 二进制 0011 $result = $a | $b; // 结果为 0111 (十进制 7)
3. 按位异或 (^
)
按位异或运算符对两个操作数的每一位进行比较,如果两个对应的位不相同,则结果为 1,否则为 0。
$a = 5; // 二进制 0101 $b = 3; // 二进制 0011 $result = $a ^ $b; // 结果为 0110 (十进制 6)
4. 按位取反 (~
)
按位取反运算符对操作数的每一位进行取反操作,即 1 变为 0,0 变为 1。
$a = 5; // 二进制 0101 $result = ~$a; // 结果为 1010 (十进制 -6,因为 PHP 使用补码表示负数)
5. 左移 (<<
)
左移运算符将操作数的二进制表示向左移动指定的位数,右边空出的位用 0 填充。
$a = 5; // 二进制 0101 $result = $a << 1; // 结果为 1010 (十进制 10)
6. 右移 (>>
)
右移运算符将操作数的二进制表示向右移动指定的位数,左边空出的位用符号位填充(正数用 0,负数用 1)。
$a = 5; // 二进制 0101 $result = $a >> 1; // 结果为 0010 (十进制 2)