3.4.6 位运算
最后更新于:2022-04-02 00:18:38
写了几年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”)。 |
以上的符号,均为二进制的运算。
二进制大家绝大多数情况下不会遇到,遇到了补一下二进制这一块的知识就会了。
~~~
~~~
| 变量 | 二进制值 |
| -- | -- |
| $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)
';