第9章位运算案例.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 位运算 本章学习重点: 掌握各种位运算符的功能、运算规则及使用方法 ; 理解并掌握各种复合赋值位运算符的功能及应用; 了解位段的有关知识 。 本章目录 第二十四讲 位运算 本章小结 结束 第二十四讲 位运算 一、位运算 二、位段 练一练 一、位运算 【思考题9-1】 设有a、b两数,分别求出“ab”、“a|b”、“a∧b”、“~a”、“a2”、“a2”的结果。 (一)程序分析 位运算的运算符一共有6个,是对二进制数位进行的运算。在这里我们应该对什么是位运算,以及位运算的操作符都代表什么意义进行研究。 返回到目录 (二)编写程序代码 #include stdio.h main() { unsigned char a,b; /*定义两个无符号字符型变量a,b*/ unsigned char c1,c2,c3,c4,c5,c6;/*定义c1—c6六个变量,存放结果*/ printf(enter a and b:); scanf(%d%d,a,b); /*输入十进制a与b的值*/ c1=a b; /*对a与b进行与运算,结果赋值给c1*/ c2=a | b; /*对a与b进行或运算,结果赋值给c2*/ c3=a ∧ b; /*对a与b进行异或运算,结果赋值给c3*/ 返回到目录 c4=~a; /*对变量a全部位取反,结果赋值给c4*/ c5=a2; /*a的各位全部左移2位,结果赋值给c5*/ c6=a2; /*a的各位全部右移2位,结果赋值给c6*/ printf(a b =%d\n,c1); /*输出十进制c1值*/ printf(a | b =%d\n,c2); /*输出十进制c2值*/ printf(a ∧ b =%d\n,c3); /*输出十进制c3值*/ printf(~a =%d\n,c4); /*输出十进制c4值*/ printf(a2 =%d\n,c5); /*输出十进制c5值*/ printf(a2 =%d\n,c6); /*输出十进制c6值*/ } 返回到目录 (三)调试运行程序 程序运行结果如下: 返回到目录 1.位运算符 所谓位运算是指对二进制数位进行的运算。每一个二进制位只能存放0或1,因此位运算符的运算对象是一个二进制数位的集合。例如将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。 运算符 名称 运算类型 示例 功能 ~ 按位取反 单目运算符 ~a 对变量a的全部位取反 左移 双目运算符 a2 a的各位全部左移2位 右移 双目运算符 a2 a的各位全部右移2位 按位与 双目运算符 ab a和b的各位按位进行“与”运算 | 按位或 双目运算符 a|b a和b的各位按位进行“或”运算 ∧ 按位异或 双目运算符 a∧b a和b的各位按位进行“异或”运算 返回到目录 (1)参与位运算的运算对象必须是整型或字符型数据,不能是其它类型的数据。 (2)两个长度不同的数据进行位运算时,系统先将两者的右端对齐,短的运算对象若是有符号数则按符号位扩展,若是无符号数则以“0”扩充。 (3)除了按位取反运算符“~”的结合方向是自右至左外,其余位运算符的结合方向都是自左至右 (4)位运算符的优先级如下:按位取反运算符“~”的优先级最高,高于所有的双目运算符;其次是左移运算符““和右移运算符“”,其优先级高于关系运算符;最低的是按位与“”、按位异或“∧”和按位或“|”运算符,其优先级低于关系运算符。 返回到目录 2.位运算 (1)按位取反运算 按位取反运算符用“~”表示。按位取反运算符是位运算中惟一的单目运算符,运算对象应置于运算符的右边。按位取反运算的运算规则是:把运算对象的内容按位取反,将每一位上的0变1,1变0。 ~0=1 ~1=0 例如: a=0000 0000 0000 1011,则表达式~a的值为1111 1111 1111 0100。 unsigned char a,b; /*定义两个无符号字符型变量a,b*/ …… b=~a /*对变量a全部位取反,结果赋值给c4*/ …… printf(~a =%d\n,b); /*输出十进制c4值*/ 返回到目录 (2)按位与运算 按位与运算用“”表示。按位与运算符的规则:若两个运算对象的对应二进制数位均为1,则结果的对应数位为1,否则为0。按位与运算可能的运算组合及其运算结果如下所示: 00=0    10=0    01=0     11=1 按位与运算的特点:二进制数的

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档