专栏首页仙士可博客关于php的位运算

关于php的位运算

php的运算符有一类是位运算的,本文主要讲解php的位运算

一:& And按位与

$a&$b 将把二进制$a和二进制$b位数都为1的设为1,其他位为0

例如:

7&3=>7(0111)&3(0011)    可以看出,0111和0011都为1的只有后面2个1,则7(0111)&3(0011)=0011; 0011十进制为3,则7&3=3

按位与的一个实际用处在于判断奇偶 $a&1

原理分析:

1的二进制只有最后一位是1,其他位都是0,而奇数的最后一位也都是1,

例如11&1=>11(1011)&1(0001) = 1 则为奇数,12&1=>12(1100)&1=0 则为偶数

该方法判断奇偶数比$a%2==1性能高

二:| Or 按位同或 

$a|$b 将把$a和$b中任何一个为 1 的位设为 1。

例子同上

三:^ Xor按位异或

$a^$b将把$a和$b中一个为 1 另一个为 0 的位设为 1。

例子同上

四:~ Not 按位取反

$a~$b 将$a中为 0 的位设为 1,反之亦然。

例子同上

五: << Shift left(左移)

$a<<$b;将$a中的位向左移动$b次(每一次移动都表示“乘以 2”)。

位进制运算比乘除运算快,所以$a*2可以写成$a<<1

六: >>Shift right(右移)

$a>>$b;将$a中的位向右移动$b次(每一次移动都表示“除以 2”)。

位进制运算比乘除运算快,所以$a/2可以写成$a>>1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • AJAX-前后端交互的艺术

    当我们通过提交表单向服务器提交内容,或者进行一些其他操作,均涉及到了与浏览器之间的交互,传统的方式与AJAX方式的处理方法是不同的

    BWH_Steven
  • 用Python爬取b站弹幕,看大家还会接受《爱情公寓5》吗?

    尽管抄袭傍身,也没能阻挡《爱情公寓5》进击的脚步。 最近爱情公寓电视剧微博发布了长达8分钟的揭幕视频,官宣新季将在2020正式开播。 几位主演纷纷转发宣传,将#...

    朱小五
  • 通过 DOM Clobbering 发现 GMail AMP4Email 的 XSS 漏洞

    原文:https://research.securitum.com/xss-in-amp4email-dom-clobbering/

    madneal
  • Laravel/Lumen 优化包 - 注解注入路由自动配置

    猿哥
  • 布隆过滤器你值得拥有的开发利器

    在程序的世界中,布隆过滤器是程序员的一把利器,利用它可以快速地解决项目中一些比较棘手的问题。如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断和缓存穿透...

    semlinker
  • <iframe>标签

    <iframe> 标签(又称内联框架元素)表示了一个嵌套的浏览上下文(browsing context),实际上是用来在当前页面中内嵌另一个HTML页面。

    Html5知典
  • 数据结构和算法——贝壳排序

    贝壳排序是插入排序的概括。与插入排序不同,它不比较连续项目,而是使用间隔i(称为间隔)将主列表分成几个子列表,然后使用插入排序对子列表进行排序。

    Lemon黄
  • php结合 Swoole的基本使用技巧

    这几个是定义帧定界的,因为Swoole的客户端和服务器端通信是TCP连接的,因此得给帧定界符,有多种帧定界方式,具体参考Swoole官方文档。这里其中是用头额外...

    php007
  • 我写了个 Chrome 插件,一键下载 PornHub 视频!

    小詹有个读者叫 zgao,他之前写过一篇博客,爬取了 PornHub(下面全部简称 P 站)上的视频,代码很简单,关键还好用!当时小詹就 P 站上爬取了一些考研...

    GitHubDaily
  • php常量分为哪几种类型?

    所谓常量就是不能改变的量,php常量一旦被定义,就不能被改变或取消定义。这是官方的解释,也是最权威的解释。

    猿哥

扫码关注云+社区

领取腾讯云代金券