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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值