热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP位运算

位运算:一、先求出二进制:-3原码:10000000000000000000000000000011-3反码:1111111

位运算:

一、先求出二进制:
-3原码: 10000000 00000000 00000000 00000011  
-3反码: 11111111 11111111 11111111 11111100 //取反,但符号位不变。
-3补码: 11111111 11111111 11111111 11111101 //反码加1

注意:
1、正数的原码、反码、补码都是一样的。
2、计算机运算是以补码形式进行的,故计算时先统一转成补码,计算后(补码)逆转成原码。

二、按位与& :除去符号位,同1为1。
例:-3&2
-3 补码:11111111 11111111 11111111 11111101
 2 补码:00000000 00000000 00000000 00000010     
结果补码:00000000 00000000 00000000 00000000//最高位也参与运算,因为一正一负,总得有个了断吧
     结果:0,由于正数三码统一,故处已是结果,补码即原码。

例:-3&-6
-3 补码:11111111 11111111 11111111 11111101
-6 补码:11111111 11111111 11111111 11111010
结果补码:11111111 11111111 11111111 11111000
结果反码:11111111 11111111 11111111 11110111//补码减1
结果原码:10000000 00000000 00000000 00001000 //反码再求反之后,-8

总结:
1、有正为正。
2、在结果为负,并且左边全是1,右边全是0,则结果从最后一个 1 取到最后,即:11111000 => 1000 => 8 => -8
2、当一个负数是2^n时,它的补码:补码等于原码有效数字所位,前补1,后补0。
-8 &#61;> 1 <1> 000 &#61;> 11000 //当然&#xff0c;前面还可以补许多1&#xff0c;但没意义&#xff0c;只要位数够运算就行
-2 &#61;> 1 <1> 00 &#61;>  11100

11000
11100
11000//结果补码&#xff0c;结果便是&#xff1a;1000 &#61;> 8 取负,-8

三、按位或| &#xff1a;除去符号位&#xff0c;有1为1
例&#xff1a;-3|-6
-3 补码&#xff1a;11111101
-6 补码&#xff1a;11111010
结果补码&#xff1a;11111111
结果反码&#xff1a;11111110//补码减1
结果原码&#xff1a;00000001 //反码再求反&#xff0c;-1

总结&#xff1a;
1、有负为负。

四、按位异或^ :相异为1&#xff0c;相同为0
例&#xff1a;-3^-6
-3 补码&#xff1a;11111101
-6 补码&#xff1a;11111010
结果补码&#xff1a;00000111//已然为正&#xff0c;故为7

总结&#xff1a;同号为正&#xff0c;异号为负。

五、按位取反~ &#xff1a;0、1互换
例&#xff1a;~-3
-3 补码&#xff1a;11111101
结果补码&#xff1a;00000010//已然为正&#xff0c;故为2

总结&#xff1a;正负相换。

六、按位右移>> : 排除符号位&#xff0c;二进制数整体向右移动。

7 >> 2 &#61;> 0111 &#61;> 0001 &#61; 1 // 这里向右移动了2位&#xff0c;最低位的两个1被抹去。

七、按位左移<<: 与上同理。
7 <<2 &#61;> 0111 &#61;> 011100 &#61; 28 // 这里向右移动了2位&#xff0c;最低位的两个1被抹去。
总结&#xff1a;右移两位等于除了2的二次方&#xff0c;7/4 &#61; 1 在整数除法中则看成是被舍掉了小数部分。左移就是剩以2的二次方,PHP没有无符号右移运算符>>>

转:https://www.cnblogs.com/zbseoag/archive/2013/03/17/2964758.html



推荐阅读
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文讲述了孙悟空写给白骨精的信件引发的思考和反省。孙悟空在信中对自己的行为进行了反思,认识到自己胡闹的行为并没有给他带来实际的收获。他也揭示了西天取经的真相,认为这是玉皇、菩萨设下的一场陷阱。他还提到了师傅的虚伪和对自己的实心话,以及自己作为师傅准备提拔的对象而被派下来锻炼的经历。他认为路上的九九八十一难也都是菩萨算计好的,唐僧并没有真正的危险。最后,他提到了观音菩萨在关键时刻的指导。这封信件引发了孙悟空对自己行为的思考和反省,对西天取经的目的和自己的角色有了更深入的认识。 ... [详细]
  • Windows2003 IIS上设置301定向,实现不带www域名跳转带www域名的方法
    打开IIS,建一个网站,主机头用不带www的域名,随便指向一个目录。然后在这个网站上点右键,属性--主目录--重定向到URL如图ÿ ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文详细介绍了使用 SQL Load 和 Excel 的 Concatenate 功能将数据导入 ORACLE 数据库的方法和步骤,同时介绍了使用 PL/SQL tools 将数据导入临时表的方法。此外,还提供了一个转链接,可参考更多相关内容。摘要共计XXX字。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 作者表示自己最近工作非常忙碌,无法抽出时间写作。他计划在未来的几天内写关于namespace与C#的名字解析以及数据库内容转化为excel文件下载的知识。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
author-avatar
素材火
优质网页素材http://www.sucaihuo.com/
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有