好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php位运算实际应用 php 位运算

很多站长朋友们都不太清楚php位运算实际应用,今天小编就来给大家整理php位运算实际应用,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php 位运算能做什么? 2、 PHP里的位运算 3、 关于php 位运算符的问题 4、 php 里的位运算符怎么算的 php 位运算能做什么?

乘以2可以用左移

除以2可以用右移

还有可以用异或交换2个变量:a^=b; b^=a; a^=b;

还有用做mask,屏蔽某位

学了组成原理就应该知道的

PHP里的位运算

总之先化为二进制,然后各位逐个计算,然后转换为十进制。

16|4=

10000B|

00100B=

10100B=20

20|4=

10100B|

00100B=

10100B=20

关于php 位运算符的问题

这个涉及到系统底层,WEB开发中几乎没用到,知道下有这个东西就好了。底层的东西解释总是简单不了的。

变量在内存中的存放都是二进制数字。整数在32位系统上是占用4字节,一个字节是8位,也就是32位,位运算就是位级的运算操作了。

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

假定变量 $a 的值是 3,$b 的值是 2。

那么 $a 在内存中的存放的格式是:

00000000 00000000 00000000 00000011

每执行一次左移,都将所有的位向左移动,右边补零,左边超过的舍弃。

所以 $a 左移 2 得到的是:

00000000 00000000 00000000 00011000

也就是 12。相当于 3 × 2 × 2 = 12。

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

假定变量 $a 的值是 24,$b 的值是 2。

那么 $a 在内存中的存放的格式是:

00000000 00000000 00000000 00011000

每执行一次右移,都将所有的位向由移动,右边超过的舍弃,左边空出的位补零。

所以 $a 右移 2 得到的是:

00000000 00000000 00000000 00000110

也就是 6。相当于 24 ÷ 2 ÷ 2 = 6。

位移运算是系统底层运算,运算的速度比乘除还要快很多,优化代码优化到极致的时候,可以将数换算成二的公倍数,然后进行位移计算。但在WEB开发中几乎没有任何必要,而且超过系统底层了,程序在的可移植性就会降低。

其他的位运算符也是差不多的。比如:

$a $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。

假定变量 $a 的值是 5,$b 的值是 6。

$a:

00000000 00000000 00000000 00000101

$b:

00000000 00000000 00000000 00000110

$a $b :

00000000 00000000 00000000 00000101

00000000 00000000 00000000 00000110

───────────────────────────

00000000 00000000 00000000 00000100

竖的看,上下都是 1 的得到 1 ,否则就是 0。

所以 $a $b = 4。

~ $a Not(按位非) 将 $a 中为 0 的位设为 1,反之亦然。

~ $a:

00000000 00000000 00000000 00000101

───────────────────────────

11111111 11111111 11111111 11111010

如果 $a 是有符号整数,第一位是符号位,1表示负数,那么 ~ $a = -2147483642。

如果 $a 是无符号整数,第一位还是数据位,那么 ~ $a = 4294967290。

以下的就不详细介绍了:

$a | $b Or(按位或) 将把 $a 或者 $b 中为 1 的位设为 1。

$a ^ $b Xor(按位异或) 将把 $a 和 $b 中不同的位设为 1。

平常说的几位的系统,就是系统处理整数的时候,是多少个位同时计算的,上面的例子都是基于32位系统。因为移动时超过的位将被舍弃,如果是64位或12位的,位移的结果就可能不一样了,要将计算时位的数量调整下。

php 里的位运算符怎么算的

位运算,顾名思义就是按二进制位进行运算。首先应该熟悉基本的位预算法则:01=0,11=1,0|1=1,0^1=1,1^1=0,~0=1等等。如果$m = 3(011) ; $n = 5(101) ;则m与n之间的位预算都是先将十进制数转换为二进制数后,按对应为上的0或1进行相应的运算,比如$mn = $n $m = 011 101 = 001即十进制的1,其它的以此类推。这下你应该明白了

关于php位运算实际应用的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php位运算实际应用 php 位运算的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did195676
更新时间:2023-04-26   阅读:19次

上一篇: php解决兔子问题 python编程兔子问题

下一篇:php未登录弹窗提示 php未登录弹窗提示怎么解决

最新资料更新

  • 1.php写循环下拉页面 php下拉菜单的代码
  • 2.php的项目开发 php项目开发案例整合
  • 3.php包含eaplay吗 php是否包含
  • 4.php设备判断在线 php判断用户在线状态
  • 5.phpcrc-itu的简单介绍
  • 6.php定义多个常量 php定义多个变量
  • 7.口袋源码php下载 口袋com
  • 8.手机文件php怎么打开 手机php格式文件怎么打开
  • 9.无法使用curlphp 无法使用此地区的账号登陆
  • 10.php从事哪个方面 php干啥的
  • 11.php项目补充redis php+redis
  • 12.无法下载file.php 无法下载filedownload
  • 13.php项目任务分配 php任务调度框架
  • 14.php项目基本流程 php项目如何运行
  • 15.php7.1des加密 php7 加密
  • 16.php和php-fpm的简单介绍
  • 17.抓取淘宝商品php 抓取淘宝商品风控
  • 18.php河内塔问题 河内塔算法
  • 19.php资源扫描教程 php识别二维码内容源码
  • 20.php表格循环 php循环函数

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]