- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 尚辅网 第九章 位运算 教学目标 了解位运算的概念、位段的定义及使用;掌握常用位运算符的作用及其使用规则;熟悉位运算在微机控制、状态测试等技术中的应用。 教学重点 常用位运算符的作用及其应用。 教学难点 常用位运算符的应用。 2.引例分析 计算机中,所有数据都以二进制形式保存,即每一位的状态为“0”或“1”,测试某一位的状态就是对该位的值进行判断。 3.程序代码 #define YES 1 #define NO 0 int exambit(int rdinnum,int num) { int measure=1; measure=(num-1); return((rdinnummeasure)?YES:NO); } 9.2常用位运算符 9.2.1按位与运算符 1.运算规则 按位与运算符“”是一个双目运算符,只有两个数对应位上的值均为1时该位上的结果值才为1,否则为零。 00=0,10=0,01=0,11=1 例如:9 500000001≡1 2.具体应用 (1)保留或测试指定位。 例如:测试数12第3位的值可通过运算:12400000100=4,结果不为零,表示第3位的值为1。 (2)指定位清0。 例如:将数892(0000001101111100)的高8位清零,保留低8位,可将该数与255(0000000011111111)进行运算: 0000001101111100 0000000011111111 0000000001111100 (十进制124) 9.2.2按位或运算符 1.运算规则 按位或运算符“|”是一个双目运算符,只要两个数对应位上的值有一个为1,该位上的结果值就为1。 0|0=0,1|0=1,0|1=1,1|1=1 例如: 12|7|00001111≡15 2.具体应用 将一个数的指定位置1。例如:要将数0000000010100000的低4位置1,只需将它与数0000000000001111按位做或运算即可: 0000000010100000 | 0000000000001111 0000000010101111 运算结果低4位为1,其余位保持不变。 9.2.3按位异或运算符 1.运算规则 按位异或运算符“^”也是一个双目运算符,只要两个数对应位上的值互不相同,该位上的结果值就为1。 0^0=0,1^0=1,0^1=1,1^1=0 例如:12^7^00001011≡11 2.具体应用 (1)指定位翻转。 例如:将数0000000001111010的低4位翻转,即1变0,0变1,可将它与0000000000001111进行^运算: 0000000001111010 ^ 0000000000001111 0000000001110101 (2)保留指定位。 方法:将指定位与0进行异或运算。 (3)交换两个变量的值(不用中间变量)。 方法:执行语句序列a=a^b;b=b^a;a=a^b;则a、b值交换。 9.2.4按位取反运算符 1.运算规则 按位取反运算符“~”是一个单目运算符,功能是对每个位上的值按位求反,即1变0,0变1。 ~0=1,~1=0 2.具体应用 当不知道被处理量的具体位数时,取反运算很有用,可以采用表达式x~1,因为1的二进制表示中最后1位为1,前面各位都是0。对于16位整数,前面有15个0;对于32位整数,前面共有31个0,不管怎样1求反后都可以使x保留前面各位的原值,而只把最后1位置0。 9.2.5左移运算符 1.运算规则 左移运算符“”是一个双目运算符,前面是要移动的量,后面是移动的位数,高位左移溢出丢弃,低位左移补0。例如:a十进制1),a4位后十进制16)。 2.具体应用 没有高位丢失时,左移运算相当于乘法运算,左移1位即乘以2,左移n位即乘以2 的n 次方。 例如:unsigned int a=15,a2 结果十进制60),相当于 。 9.2.6右移运算符 1.运算规则 右移运算符“”也是一个单目运算符,对无符号数,高位补0,低位丢失;有符号数,补与高位相同的数,低位丢失。 2.具体应用 没有低位丢失时,右移n位,相当于原数除以。右移比除法运算花费时间少。 例如:unsigned int a=16,a2 结果十进制4),相当于。 9.2.7位运算赋值 位运算赋值符包括:=、|=、=、=、^=等。 引例中语句“m
您可能关注的文档
- 基础会计实训 项目二 记账凭证实训.pdf
- 基础会计实训 项目三 会计账簿实训.pdf
- 基础会计实训 项目四 会计报表实训.pdf
- 基础会计实训 项目五 会计基本账务处理综合实训.pdf
- 基础会计实训 项目一 原始凭证实训.pdf
- 基础会计习题集 教学课件 作者 周会林.doc
- 基础会计习题集 习题答案 作者 周会林 项目八答案.doc
- 基础会计习题集 习题答案 作者 周会林 项目二答案.doc
- 基础会计习题集 习题答案 作者 周会林 项目九答案.doc
- 基础会计习题集 习题答案 作者 周会林 项目六答案.doc
- 基于任务驱动的C语言程序设计 高职计算机大类专业 李祥林 课件 ch10.ppt
- 基于任务驱动的C语言程序设计 高职计算机大类专业 李祥林 实验任务书 实验二任务书.doc
- 基于任务驱动的C语言程序设计 高职计算机大类专业 李祥林 实验任务书 实验七任务书.doc
- 基于任务驱动的C语言程序设计 高职计算机大类专业 李祥林 实验任务书 实验三任务书.doc
- 基于任务驱动的C语言程序设计 高职计算机大类专业 李祥林 实验任务书 实验十任务书.doc
- 基于任务驱动的C语言程序设计 高职计算机大类专业 李祥林 实验任务书 实验一任务书.doc
- 基于三维设计的工程制图 教学课件 作者 霍光青第0章 绪论.ppt
- 基于三维设计的工程制图 教学课件 作者 霍光青第1章 制图的基本知识.ppt
- 基于三维设计的工程制图 教学课件 作者 霍光青第2章 投影.ppt
- 基于三维设计的工程制图 教学课件 作者 霍光青第3章 组合体.ppt
文档评论(0)