写了几年PHP的人都说,没有用过位运算符。所以,此处你看二进制看的头晕,就去T¥M¥D吧。 位运算符基本不用,我们也将这个知识设置为了解级别。位运算符的知识点,你不想学习也可以。**等以后用到位运算的时候,再来学习吧。** 知识学习级别【了解级,有印象即可】。 | 举例 | 说明 | 详细说明 | | -- | -- | -- | | $a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1。 | | ![$a $b](http://box.kancloud.cn/2015-08-02_55bddf81d780b.png) | 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。 在线二级制转十进截图: ![2015-08-02/55bde1c996a04](http://box.kancloud.cn/2015-08-02_55bde1c996a04.png)