- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 计算机网络体系结构 C语言程序设计 主编 任正云 中国水利水电出版社 * 第8章 位运算 位运算是体现C语言具有低级语言功能的重要特点之一。 计算机中存储和运算都是以二进制方式进行的,而位运算正是提供了对二进制进行操作的手段,因此合理地使用位运算可使程序的执行效率得到提高。 8.1 位运算符 6个位运算符: 位运算符仅作用于非浮点类型。 按位与 左移 | 按位或 ∧ 按位异或 ~ 取反 右移 字位逻辑运算符 字位移运算符 8.1 位运算符 1.字位逻辑运算符 特点: 它只对相关的两个二进制位进行运算,不产生进位。 字位逻辑运算符的操作对象是0或1; 运算的结果也是0或1。 8.1 位运算符 (1)按位与运算符。 其功能为: 即只有在两个运算对象全1的时候,结果才为1,其余的情况下结果均为0。 按位与运算符是双目运算,其两个运算对象均是二进制位,结果也是二进制位。 00=0,01=0,10=0,11=1。 8.1 位运算符 (2)按位或运算符| 其功能是: 即两个运算对象中只要有一个为1,结果就为1。 按位或运算符|也是一个双目运算符,其运算的对象也为两个二进制位,结果也是二进制位。 0|0=0,0|1=1,1|0=1,1|1=1。 8.1 位运算符 (3)按位取反运算符~ 即对原来的位置值进行翻转。 (4)按位异或运算符∧。 即当两个运算对象的值相反的时候结果为1,相同的时候结果为0。 按位取反运算符是一个单目运算符,其功能是:~0=1,~1=0。 按位异或运算符∧是一个双目运算符,其功能是:0∧0=0,0∧1=1,1∧0=1,1∧1=0。 8.1 位运算符 【例8.1】设a=(9)10=(1001)2 ,b=(10)10=(1010)2,求ab、a|b及a∧b。 1010 1001 ab 1000 1101 | 1001 a|b 1011 1010 ∧ 1001 a∧b 0011 8.1 位运算符 注意: ①位运算和逻辑运算符的区别。 ②任何一个数和它自身的异或永远是0,而任何一个数和0的异或的结果是其自身。 和,|和||,虽然它们的真值表是相同的,但和|是对两个数按二进制位进行操作,其结果是一个数,而逻辑运算符和||是把两个数作为整体进行操作的,其结果是一个逻辑值。 8.1 位运算符 按位异或运算有个有趣的特性: 其中∧(a,b)=(a∧b),因此上式也就是 (a∧b)∧b======a∧(b∧b)=a∧0=a 结合律 对一个数据用另一个数据进行两次异或操作后,将恢复这个对象原来的值。 ∧(∧(a,b),b)=a 8.1 位运算符 例如,设a=1001,b=1010,则 (c) 0011 (b) 1010 ∧ (a) 1001 (a) 1001 (b) 1010 ∧ (c) 0011 前一个操作称为加密过程,将a和b进行异或运算,结果为c;后一个操作称为解密过程,即将加密后的c的值再用b进行异或运算,结果又恢复为a。 8.1 位运算符 利用这个特性,可以在不需要第三变量的情况下将两个变量进行交换,这时只需要进行三次异或操作即可: a=a0∧b0; (1) b=a∧b0; (2) a=a∧b0; (3) 8.1 位运算符 由(2)式推导: 由(3)式推导: a=a∧b======(a0∧b0)∧b======(a0∧b0)∧a0=====(a0∧a0) ∧b0=0∧b0=b0 (1)式 (4)式 结合 即b的终值为a的初值a0,a的终值为b的初值b0,a0和a,b0和b都用同一个内存单元,只是表示不同时间内的不同值而已。 (1)式 b=a∧b0======(a0∧b0)∧b0=a0∧(b0∧b0)=a0∧0=a0 (4) 8.1 位运算符 按位逻辑运算主要用在以下几个方面: 1)按位与运算用于选取一个数的某些二进制位。 掩码取所需要的位数,且全部置1 两种情况: 一是只取一个数的某几位,其他位都不要; 二是只保留一个数中某几位的原始值,其他位全是0。 (1)掩码和原来的数一样长,只在需要保留的位上置1,其余全置0。 (2)掩码确定之后,再与原数进行适当的按位与运算,即可得到所需的结果。 8.1 位运算符 在一个16位的系统,前8位和后8位全为1时表示的数的情况为: (111
您可能关注的文档
- C#语言程序设计 李继武 彭德林 第5章新.ppt
- C#语言程序设计 李继武 彭德林 第6章新.ppt
- C#语言程序设计 李继武 彭德林 第7章新.ppt
- C/C++程序设计教程 C语言程序设计2新.ppt
- C/C++程序设计教程 C语言程序设计3新.ppt
- C/C++程序设计教程 C语言程序设计5新.ppt
- C/C++程序设计教程 C语言程序设计6新.ppt
- C/C++程序设计教程 C语言程序设计7新.ppt
- C/C++程序设计教程 C语言程序设计8新.ppt
- C++程序设计基础 陆勤 第二章 程序控制结构新.ppt
- 绿色有机产品市场分析-深度研究.pptx
- 南北通透房屋买卖合同9篇.docx
- 绿色智能家居能源设计-深度研究.pptx
- 上海莫仕连接器有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版完整.docx
- 上海莫仕连接器有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版审定版.docx
- 上海莫仕连接器有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版及答案一套.docx
- 上海莫仕连接器有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版完整版.docx
- 常用版事业单位聘用合同模板7篇.docx
- 上海莫仕连接器有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版带答案.docx
- 2025年房地产合同:外销商品房预售合同6篇.docx
文档评论(0)