PHP基础语法之 位运算

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

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

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

举例说明详细说明
$a & $bAnd(按位与)将把 $a 和 $b 中都为 1 的位设为 1。
$a | $bOr(按位或)将把 $a 和 $b 中任何一个为 1 的位设为 1。
$a ^ $bXor(按位异或)将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
~ $aNot(按位取反)将 $a 中为 0 的位设为 1,反之亦然。
$a << $b左移将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $b右移将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

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

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

<?php
//$x二进制值为:
$x = 5;
//$y二进制值为:
$y = 8;
//结果为13
echo $x ^ $y;
?>
变量二进制值
$x0101
$y1000
异或结果1101

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

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

2015-08-02_55bde1c996a04.png

继续学习
||
<?php //$x二进制值为: $x = 5; //$y二进制值为: $y = 8; //结果为13 echo $x ^ $y; ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载

5和8这个例子举得不好,容易让不太明白的人误以为这个操作等于相加,实际上将8换成9会发现结果不是相加的结果,初学者需要注意一下。

7年前    添加回复 1

兔子爱吃花菜

5的二进制不是1010吗

6年前    添加回复 0

无动于衷

因为程序中的所有数在计算机内存中都是以二进制的形式储存的,二进制只有0和1组成。位运算说穿了,就是直接对整数在内存中的二进制位进行操作,一字节公有8个bit/位,有兴趣的可以了解下。

7年前    添加回复 0

青草地

越来越觉得php的严谨度就是开玩笑似的。运算符的两边位置变一下,就是可能是完全不同的结果啊!!!

7年前    添加回复 0

有何不可

未免太了解级了吧/捂脸,话说转进制都是在线的

7年前    添加回复 0

勾子

完全不知道干嘛的

7年前    添加回复 0

一般的二进制加减是不是异或运算的结果

[最新 小小卫 的回答] 没p豆了实在没办法你问的我也不会望采纳谢谢看视屏没p豆了 麻烦了 谢谢

时间:7年前

位运算的到底要不要深入学习

[最新 代言 的回答] 位运算不需要过于深入的学习,因为工作中用到的不是太多。

时间:8年前

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~