详解PHP位运算符

位运算

位运算符是指对二进制位从低位到高位对齐后进行运算。

符号 作用 举例 个人理解 & 按位与 $m & $n 全1为1,否则为0 | 按位或 $m | $n 全0为0,有1为1 ^ 按位异或 $m | $n 不同为1,相同为0 ~ 按位取反 ~$m << 向左移位 $m << $n >> 向右移位 $m >> $n

&运算符

<?php
$m = 1;
$n = 2;
$mn = $m & $n;
echo $mn;

运行结果为0

解释:将1,2分别转换为二进制为

00000001

00000010

在按位与的过程中,按位比较,全1为1,比较结果为00000000,所以输出0

|运算符

<?php
$m = 1;
$n = 2;
$mn = $m | $n;
echo $mn;

运行结果为3,同样,转换成如上的二进制

00000001

00000010

在按位或的过程中,有1为1,全0为0,则结果为00000011,所以输出3

^运算符

<?php
$m = 1;
$n = 2;
$mn = $m ^ $n;
echo $mn;

运行结果为3,同样,转换成如上的二进制

00000001

00000010

在按位亦或的过程中,不同为1,相同为0,所以结果为00000011,进而输出3。

~运算符

<?php
$m = 2;
$m1 = ~$m;
echo $m1;

运行结果为-3,此处引人深思。

注:在计算机中,负数以其正值的补码形式表达。

1: 2的32位原码为 0000 0000 0000 0000 0000 0000 0000 0010

2: 按位取反后为 1111 1111 1111 1111 1111 1111 1111 1101

由于最前面的数为1,符号位为1,即为负数,所以,以其正值的补码形式表示为:(符号位不变,按位取反,末尾加1)

1000 0000 0000 0000 0000 0000 0000 0011

所以输出为-3

<<运算符

<?php
$m = 3;
$m1=$m << 1;
echo $m1;

运算结果为6

左移运算的实质是将对应的数据的二进制值逐位左移若干位,并在空出的位置上填0,最高位溢出并舍弃。

3的32位原码为,0000 0000 0000 0000 0000 0000 0000 0011

左移一位:0000 0000 0000 0000 0000 0000 0000 0110

所以为6

根据手册描述可以看出位运算可以看出向左移一位,则是实现乘2运算。由于位移操作的运算速度比乘法的 运算速度高很多。因此在处理数据的乘法运算的时,采用位移运算可以获得较快的速度。
提示 将所有对2的乘法运算转换为位移运算,可提高程序的运行效率。

>>运算符

右移一位,和<<运算符,类似,只不过这个是右移,此处不在做过多解释。

更多编程相关知识,请访问:编程教学!!

关于详解PHP位运算符的文章就分享到这,如果对你有帮助欢迎继续关注我们哦

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/44697.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
php学习php学习订阅用户
上一篇 2022年6月27日 00:31
下一篇 2022年6月27日 00:31

相关推荐

  • 详解PHP如何遍历对象

    PHP怎么遍历对象?对于php来说,foreach是非常方便好用的一个语法,几乎对于每一个PHPer它都是日常接触最多的请求之一。那么对象是否能通过foreach来遍历呢?答案是肯定的,但是有个条件,那就是对象的遍历只能获得…

    2022年6月27日
    0109
  • PHP调用华为云短信接口实现短信发送。

    随着智能手机的流行,短信已经成为了人们生活中必不可少的一部分。不论是商业还是个人用途,短信都是一种重要的沟通方式。华为云是一家领先的云计算服务提供商,为了满足用户需求,华为云提供了短信服务。在这篇文…

    2023年5月30日
    05
  • 基于PHP商城开发的卓越应用

    在当今的数字化时代,各行业对于电子商务平台的需求日益增长,跨越时间与空间的限制,让商业活动不再受制于地域和时间的限制,同时也满足了人们的闲暇、生活、工作和消费等多元需求,电子商务平台逐渐成为商务活动…

    2023年5月19日
    01
  • 如何使用PHP中的Memcache缓存技术提高网站的大并发性能。

    随着互联网技术的不断发展,网站的用户访问量越来越大,带来的并发访问量也越来越高。为了应对这种高并发访问,常用的手段是使用缓存技术。而在PHP语言中,Memcache缓存技术是一种非常有效的解决方案。Memcache是一…

    2023年5月21日
    03
  • PHP入门指南:PHP和Prometheus。

    PHP作为一种开源的脚本语言,已经有20多年的历史。它主要被用于Web开发,特别是用于服务端的脚本。PHP的使用非常广泛,它被用于构建许多大型的Web应用程序和网站。Prometheus则是一种开源的监控系统和时间序列数据…

    2023年5月22日
    07
  • PHP数组的基本使用

    基本使用 获取到一个元素中的值; 写数组名(变量名)[下标];    //必须知道下标是什么,只能打印输出一个值 数组的遍历--遍历就是一个一个的自动获取 For循环遍历数组--只能遍历索引数组 Foreach循环变量数组--都可…

    2018年4月8日 PHP自学教程
    0209
  • 示例php+mysql查询实现无限下级分类树输出

    本文实例讲述了php+mysql查询实现无限下级分类树输出。分享给大家供大家参考,具体如下:这里介绍的php结合mysql查询无限下级树输出,其实就是无限分类。给各位整理了几个php无限分类的例子.【

    2022年6月17日
    0182
  • PHP与数据库性能调优的集成。

    随着互联网技术的飞速发展,数据库是网站开发中必不可少的一部分。而PHP是目前最常用的服务器端语言之一,它的高效性能和便捷的开发方式已经被广泛认可。但是,即使是最流行的技术也有其局限性,数据库性能问题是PH…

    2023年5月21日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息