PHP位运算符&、^、|、<<、>>
原创目录
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 版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123


