PHP位运算符&、^、|、<<、>>

原创
小哥 3年前 (2023-05-16) 阅读数 17 #大杂烩

目录

1、位运算符 & :位与

类似逻辑运算符 &&and

例:3&7

00000011;//3的二进制
00000111;//7的二进制
//对每byte与运算
00000011;//结果为3

即:

echo 3&7;

输出:

3

2、位运算符 ^ :位异或

类似逻辑运算符 异或xor ,但是 xor 是以值直接进行逻辑运算结果是bool值。 ^ 则是对数字的二进制byte进行异或运算,得到结果再转为十进制返回

例:3^7

00000011;//3的二进制
00000111;//7的二进制
//对每byte异或运算
00000100;//结果为4

即:

echo 3^7;

输出:

4

3、位运算符 | :位或

类似逻辑运算符 ||or

例:3|7

00000011;//3的二进制
00000111;//7的二进制
//对每byte或运算
00000111;//结果为7

即:

echo 3|7;

输出:

7

4、其他位运算符 <<>> :将二进制的全部位向左移、右移

也称作 移位

比如:echo 5 << 1
因为 5 转换二进制为 00000101 左移动1位变成 00001010

echo 5 << 1;//输出10

比如:echo 5 >> 1
因为 5 转换二进制为 00000101 右移动1位变成 00000010

echo 5 >> 1;//输出2

进行 乘除 运算时,使用 移位*/ 更高效。但仅适合 乘数 (*右边的数)、 除数 (/右边的数)为整数,且乘数、除数为2的n次方的场景

例如:

echo 32 / 8;//输出4
//可改成
echo 32 >> 3;//输出4
echo 33 >> 3;//输出4(去除了余数)

例如:

echo 3 * 16;//输出48
//可改成
echo 3 << 4;//输出48
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除