空山新雨后,兵长一米六。 收藏本站
登陆 / 注册 搜索

阅读:3.9K   回复: 2

位运算符 |、&和逻辑运算符 ||、&& 的区别

[复制链接]
小执念 古黑浩劫论坛大牛 2020-3-27 23:37 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
位运算符

在PHP中,| & 被称为位运算符,两者的含义如下:

|: 参加运算的两位运算量有一位为1时,该位为1,否则为0

👩‍✈️‏👗📠👻👀


&: 参加运算的两位运算量相应位均为1时该位为1,否则为0

更详细的运算说明,请看二楼

先将运算量转为二进制进行然后进行位对比,看下面的列子:👳‏💎🎺🤐👂

  1. <?php
  2. $a = 10;        //二进制为:00000000 00000000 00000000 00001010
  3. $b = 20;        //二进制为:00000000 00000000 00000000 00010100
  4. $c = $a | $b;    //二进制为:00000000 00000000 00000000 00011110

    ✊🌧🍧☣🦬‏

  5. echo $c;        //上面的二进制位运算后结果为30
  6. ?>
复制代码



逻辑运算符‏🥾🪝😚👃

||: 逻辑或,左右两边参数都为 FALSE,返回 FALSE,否则返回 TRUE
&&: 逻辑或,左右两边参数都为 TRUE,返回 TRUE,否则返回 FALSE

两者区别
👎🦀🆚🐋‏
逻辑运算符存在短路问题,比如在进行逻辑或(||)运算的时候,如果左边为TRUE,就直接返回TRUE,不再判断右边的结果。而位运算符则不存在短路问题,左右两边都要执行。

上一篇
下一篇
帖子热度 3875 ℃

小执念 古黑浩劫论坛大牛 2020-3-27 23:47 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
什么是位运算:

💪🏠🌶💲🦕‌从现代计算机中所有的数据二进制的形式存储在设备中。即0、1两种状态,计算机对二进制数据进行的运算(+-*/)都是叫位运算,即将符号位共同参与运算的运算。

详细说明:

按位与(&) and👳‌👠🗑😀🦷
计算方法:
参加运算的两个数,换算为二进制(0、1)后,进行与运算。只有当相应位上的数都是1时,该位才取1,否则该为为0。

例如:3 & 5 = 1
  1. 0000 0000 0000 0000 0000 0000 0000 0011     -> 3
    🙏🏦🐮‍
  2. 0000 0000 0000 0000 0000 0000 0000 0101     -> 5
  3. 0000 0000 0000 0000 0000 0000 0000 0001     -> 3 & 5 = 1
复制代码


按位或(|) or
计算方法:👴‏👠🔒😊🤟
参加运算的两个数,换算为二进制(0、1)后,进行或运算。只要相应位上存在1,那么该位就取1,均不为1,即为0。

例如:3 | 5 = 7
  1. 0000 0000 0000 0000 0000 0000 0000 0011     -> 3
  2. 0000 0000 0000 0000 0000 0000 0000 0101     -> 5‏👒📐🥲👌
  3. 0000 0000 0000 0000 0000 0000 0000 0111     -> 3 | 5 = 7
复制代码


按位异或(^) xor
计算方法:
参加运算的两个数,换算为二进制(0、1)后,进行异或运算。只有当相应位上的数字不相同时,该为才取1,若相同,即为0。👩‏🕶🧹😀👀


例如:3 ^ 5 = 6
  1. 0000 0000 0000 0000 0000 0000 0000 0011     -> 3
  2. 0000 0000 0000 0000 0000 0000 0000 0101     -> 5🧑‍🌾‎🥾🧹😔👏
  3. 0000 0000 0000 0000 0000 0000 0000 0110     -> 3 ^ 5 = 6
复制代码



按位取反(~) not
计算方法:👴‍🪖🔌🥰👌
参加运算的两个数,换算为二进制(0、1)后,0变1,1变0。

例如:~ 3 = -4
  1. 0000 0000 0000 0000 0000 0000 0000 0011     -> 3
  2. 1111 1111 1111 1111 1111 1111 1111 1100     -> ~ 3 = -4
复制代码

🖕⛵🍌🅱🐥‍



微雨黄昏 「出类拔萃」 2020-3-27 23:37 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

曾梦想仗剑走天涯,因太穷放弃了计划
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表