第十一章:位运算符与位运算

文章目录

  • 第十一章:位运算符与位运算
        • 1.按位与运算:&
        • 2.按位或运算:|
        • 3.按位异或运算:^
        • 4.取反运算符:~
        • 5.左移运算符:<<
        • 6.右移运算符:>>
        • 总结

第十一章:位运算符与位运算

位运算将表达式或变量的值看成二进制数,对于它的每个二进制位逐位进行运算,所以不能用于float、double、long double、void或更复杂的数据类型,即只能用于整型、字符型数据等。

在这里插入图片描述

1.按位与运算:&
  • 作用:位逻辑与运算,参与运算的两个操作数按二进制位进行逻辑与运算

  • 运算规律:全1为1

注意:参与运算的两运算数据先转换成补码形式,再进行位运算

  • 用途:
    • 清零:找到合适的二进制数,原来的数为1的位,新数中相应的位为0.
    • 取一个数中的某些指定位
      • 一个short a ,若取高字节,则与0177400进行位与运算,特点:高字节全为1,低字节全为0
      • 若取低字节,则与0377进行位与运算,特点:高字节全为0,低字节全为1
2.按位或运算:|
  • 作用:将两个操作数对应的每一位分别进行逻辑或操作
  • 规律:全0为0
0|0=0,0|1=1,1|0=1,1|1=1
3.按位异或运算:^
  • 作用:将两个操作数对应的每一位进行异或操作
  • 规则:两个数对应的二进制位__相同为0,相异为1__
0^0=0  0^1=1  1^0=1  1^1=1
  • 用途:

    • 使特定位翻转:一个数若想使其某些特定位翻转,则与一个数相异或,使该数对应位全为1
    若oxfa位翻转11111010
    (^) 00001111
    --> 11110101
    
    • 与0相^,保留原值
    x0x35^0   00110101
    (^)00000000
    -->00110101
    

    与0相保留原位,与1相翻转

    • 用来清0:一个整数与其自身进行异或运算,结果必为0, a^a=0

    • 交换两个值,不用临时变量

    a=a^b;
    b=b^a;
    a=a^b;a=01              b=10               a=11b=10              a=11               b=01
    (a^b)  a=11       (b^a)  b=01        (a^b)  a=10
    
4.取反运算符:~
  • 作用:用来求表达式或变量的反码
  • 运算规律:为单目运算符,将一个二进制数按位取反,即将1变为0,将0变为1
  • 应用:增加程序的移植性
eg:
若将一个变量x的低四位清零,对于不同数据的变量应选用不同的操作数,即
对于char x,y  应写作:y=x&0xf0

注意:位运算符除了~外,均为双目运算符,要求两侧各有一个一个运算量

5.左移运算符:<<
  • 作用:将一个数的二进制位全部左移若干位

  • 左移1相当于该数×2

  • 左移高位舍弃0:相当于乘2的n次幂

6.右移运算符:>>
  • 作用:将一个数的二进制位全部右移若干位
  • 规则:

在这里插入图片描述

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573146.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态内存操作函数使用过程中会遇见的问题

越界访问 首先我们上一个代码&#xff0c;看看这个的代码的问题 这个代码的问题显而易见 &#xff0c;就是在循环里面&#xff0c;产生了越界访问的问题&#xff0c;这里你开辟了10个整形空间&#xff0c;但是从0-10一共是11个整形空间。导致访问不合法的空间&#xff0c;从而…

Cy3-PEG-NH2 Cy3-聚乙二醇-氨基 磷脂PEG花菁Cy3

产品名称 Cy3-PEG-NH2 目录号 410502 中文名称 Cy3-聚乙二醇-氨基 英文名称 Cy3-PEG-NH2 Cy3-PEG-Amine 分子量 2000 溶解度 溶于氯仿等有机溶剂 存储条件 -20冷冻避光 保存时间 一年 Ex/Em(nm) 550/570 其它分子量 1000 3400 5000 10000 结构 花氰染料Cyanine,常应用…

记一次由gzip引起的nginx转发事故

故事背景 书接前几篇文章&#xff0c;仍然是交付甲方遇到的一个特殊诉求&#xff0c;从而引发了本期的事故。甲方的诉求是前端的请求过来&#xff0c;需要加密&#xff0c;但是要经过waf&#xff0c;必须要求是请求明文&#xff0c;那就要在waf和nginx之间做一个解密前置应用处…

搜索插入位置-java

题目描述 : 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 思路分析: 这段代码的解题思想是利用二分查找的方法在…

MySql实战--事务到底是隔离的还是不隔离的

第3篇文章和你讲事务隔离级别的时候提到过&#xff0c;如果是可重复读隔离级别&#xff0c;事务T启动的时候会创建一个视图read-view&#xff0c;之后事务T执行期间&#xff0c;即使有其他事务修改了数据&#xff0c;事务T看到的仍然跟在启动时看到的一样。也就是说&#xff0c…

深入探讨分布式ID生成方案

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

OSPF-区域间路由计算

一、概述 前面学习了我们学习了Router-LSA和Network-LSA&#xff0c;它们都只能在区域内进行泛洪&#xff0c;而且我们之前一直主要是单区域学习。OSPF的核心是骨干区域Area 0&#xff0c;其它都为非骨干区域。但是在大型网络中&#xff0c;单区域OSPF会存在一定的问题&#xf…

HCIA-Datacom实验_03_实验一:华为VRP系统基本操作

1.运行eNSP&#xff0c;设置-界面设置-自定义界面-设备标签&#xff0c;“总显示接口标签” 打钩。 2.按照实验拓扑添加设备 注&#xff1a;如果是真实环境&#xff0c;需要接两条线&#xff1a; &#xff08;1&#xff09;串口线&#xff1a;电脑USB口到网络设备Console口&am…

EdgeGallery开发指南

API接口 简介 EdgeGallery支持第三方业务系统通过北向接口网关调用EdgeGallery的业务接口。调用流程如下图所示&#xff08;融合前端edgegallery-fe包含融合前端界面以及北向接口网关功能&#xff0c;通过浏览器访问时打开的是融合前端的界面&#xff0c;通过IP:Port/urlPref…

免费SSL证书和付费SSL证书的区别点

背景&#xff1a; 在了解免费SSL证书和付费SSL证书的区别之前&#xff0c;先带大家了解一下SSL证书的概念和作用。 SSL证书的概念&#xff1a; SSL证书就是基于http超文本传输协议的延伸&#xff0c;在http访问的基础上增加了一个文本传输加密的协议&#xff0c;由于http是明…

第十篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读Python自动化操作Excel

传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列博文目录 前言一、重要作用解说二、Python操作Excel的常用库介绍三、数据处理和分析示例代码四、自动化报表生成示例代码五、数据导入和导出示例代码六、数据可视化示例代码八、数据校验和清洗示例代码九、…

【Java程序设计】【C00386】基于(JavaWeb)Springboot的校运会管理系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校运会管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上…