文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3.4.6 位运算
写了几年 PHP 的人都说,没有用过位运算符。所以,此处你看二进制看的头晕,就去 T¥M¥D 吧。
位运算符基本不用,我们也将这个知识设置为了解级别。位运算符的知识点,你不想学习也可以。 等以后用到位运算的时候,再来学习吧。
知识学习级别【了解级,有印象即可】。
举例 | 说明 | 详细说明 |
---|---|---|
$a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1。 |
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。
在线二级制转十进截图:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论