写了几年PHP的人都好奇说,没有用过位运算符。所以,此处你看二进制看的头晕,就去T¥M¥D吧。

位运算符基本不用,我们也将这个知识设置为了解级别。位运算符的知识点,你不想学习也可以。等以后用到位运算的时候,再来学习吧​​

知识学习级别【了解级,有印象即可】。

举例

说明

详细说明

$a & $b

And(按位与)

将把 $a 和 $b 中都为 1 的位设为 1。

$a | $b

Or(按位或)

将把 $a 和 $b 中任何一个为 1 的位设为 1。

$a ^ $b

Xor(按位异或)

将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。

~ $a

Not(按位取反)

将 $a 中为 0 的位设为 1,反之亦然。

$a << $b

左移

将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。

$a >> $b

右移

将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

以上的符号,均为二进制的运算。

二进制大家绝大多数情况下不会遇到,遇到了补一下二进制这一块的知识就会了。

<?php
//$x二进制值为:
$x = 5;
//$y二进制值为:
$y = 8;
//结果为13
echo $x ^ $y;
?>


变量

二进制值

$x

0101

$y

1000

异或结果

1101

异或解释:如果x,y两个值不相同,则异或结果为1。如果x,y两个值相同,异或结果为0。

由此可推1101为$x和$y异或出来的结果,1101用二进制转10进制工具转换后的结果就为13。