位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<)

简介: 原文:位运算反(~)与(&)异或(^)或(|)右移(>>)左移(    25= 0000 0000 0000 0000 0000 0000 0001 1001                  3=  0000 0000 0000 0000 0000 0000 0000 0011 -------...
原文: 位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<)

先知道这两个二进制数据的特点:   1=0000 0000 0000 0000 0000 0000 0000 0001 

                                             -1=1000 0000 0000 0000 0000 0000 0000 0001 

            1.最高位(首位)表示正负(0为正,1为负)

            2.最低位(末位)表示奇偶(0为偶,1为奇)

一、按位取反(~)

十进制1按位取反后=?

分析:

1. 十进制1转为二进制为:1= 0000 0000 0000 0000 0000 0000 0000 0001 

2. 按位取反:把原来的二进制得到一个新的二进制,原来是0的则变为1,1的则变为0。

            1按位取反后得到   1111 1111 1111 1111 1111 1111 1111  1110

3.二进制的最高位(首位)表示正负(1为负,0为正),如果是负数,如果是负数,则需要用计算机中的补码来表示。

   补码:补码=符号位(最高位)以后按位取反再加1. 

                        补码为   1000 0000 0000 0000 0000 0000 0000  0010

4. 结果为:把补码转为十进制:  -2;

 ~1==-2

 

十进制-1按位取反后=?

 1.            -1的二进制是 1000 0000 0000 0000 0000 0000 0000 0001 

 2. 负数是以其补码的形式储存的

       -1在计算机中存的是 1111 1111 1111 1111 1111 1111 1111 1111

3.    按位取反:             0000 0000 0000 0000 0000 0000 0000 0000  

4.结果为:转为十进制:0

~-1==0

二、按位与and(&)

按位与and(&): 相同位的两个数字都为1,则为1;若有一个不为1,则为0。

25&3=>    25= 0000 0000 0000 0000 0000 0000 0001 1001

                 3= 0000 0000 0000 0000 0000 0000 0000 0011

-------------------------------------------------------------------------------------

                     0000 0000 0000 0000 0000 0000 0000 0001

25&3==1

 

三、按位异或(^)

按位异或(^):相同位不同则为1,相同则为0

25^3=>    25= 0000 0000 0000 0000 0000 0000 0001 1001

                 3=  0000 0000 0000 0000 0000 0000 0000 0011

-------------------------------------------------------------------------------------

                      0000 0000 0000 0000 0000 0000 0001 1010

25&3==26

四、按位或(|)

按位或(|):相同位只要一个为1即为1。

 

25|3=>    25=  0000 0000 0000 0000 0000 0000 0001 1001

 

                 3=  0000 0000 0000 0000 0000 0000 0000 0011

 

-------------------------------------------------------------------------------------

 

                      0000 0000 0000 0000 0000 0000 0001 1011

25|3==27

五、右移(>>)

     把1的位置向右移n位,超出的就舍掉

           15=0000 0000 0000 0000 0000 0000 0000 1111

     15>>1=0000 0000 0000 0000 0000 0000 0000 0111

     15>>1=7

     :右移1位即除以21;,并且取整。

      n>>4==n/(24)

      64>>4==4

六、左移(<<)

  把1的位置向左移n位,超出的就舍掉

 :左移1位即乘以21;,并且取整。

      n<<4==n*24

      2<<4==32

 

目录
相关文章
|
Web App开发 Python
python自动更新chromedriver
python自动更新chromedriver
412 0
|
安全 网络协议 Shell
渗透测试工具用法技巧入门到进阶
零基础网盘 百度网盘-19****394的分享 新手入门过程 看完 后面有进阶过程 简单工具
356 0
|
JavaScript 编译器
vue3+ts:shims-vue.d.ts
vue3+ts:shims-vue.d.ts
489 0
vue3+ts:shims-vue.d.ts
|
运维 Cloud Native Devops
产品交付双轮驱动下的研发工具思考与实践
产品交付的双轮驱动思维模型强调以&quot;业务价值&quot;和&quot;产品交付&quot;为核心,前者把握方向,后者提供动力。该模型通过理解需求、确定真北、团队探讨和方案精炼(价值轮)来确保业务价值,然后借助开发、测试、运维和反馈(交付轮)实现快速产品交付。根据不同的业务定位,如战略级、运营级或管理级,选择合适的研发效能工具,如PingCode、GitLab、简单云、阿里云云效和思码逸,以支持不同层次的需求。思码逸尤其以其研发效能度量和数据分析能力突出。
277 2
|
Android开发
Android代码混淆
Android代码混淆
216 0
|
消息中间件 SQL 关系型数据库
Apache Hudi实时入湖之DeltaStreamer最佳实践
Apache Hudi实时入湖之DeltaStreamer最佳实践
253 0
|
SQL 存储 监控
基于PHP的英语四六级在线模拟考试平台(论文+源码)_kaic
基于PHP的英语四六级在线模拟考试平台(论文+源码)_kaic
|
存储 网络协议 网络安全
【免费外国云服务器】亚马逊AWS创建EC2实例搭建个人服务器
【免费外国云服务器】亚马逊AWS创建EC2实例搭建个人服务器
396 0
|
运维 安全 Java
我和我的团队使用 Codeup后的体验
我是公司数据中心负责人,会参与到一些软件开发,架构设计等工作,在团队工具选型时也会亲力亲为,争取为团队能选择效率高、好用的工具。由于我们团队处于前期开发阶段,业务主要是围绕能源互联网,可以想象的未来业务领域及数据量会很多,为了减少运维成本、保障安全性、高可用性、能较好地链接devops,并能很好的自动检测代码(每次对于一些简单的非业务的逻辑错误人为CR效率低下,容易错漏),结合对比使用了开源的gitlab和Codeup后,结合自己和团队的使用体验来做一些测评。
242 0
【比较】交互图——顺序图和协作图
前言: 所谓交互图,是描述对象之间的关系以及对象之间的信息传递的图,可分为顺序图和协作图。
570 0
【比较】交互图——顺序图和协作图