网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计(第二版) 教学课件 作者 978 7 302 32355 6 kj 第11章位运算.pptVIP

C语言程序设计(第二版) 教学课件 作者 978 7 302 32355 6 kj 第11章位运算.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 位运算 本章概述 C语言有一个重要特点就是可以直接对二进制位进行操作,即位运算。 二进制位简称位(bit),其值为0或1。计算机真正执行的正是由0和1构成的机器指令,计算机内数据也是由二进制表示的。 数在计算机内均是以补码的形式存储的 。 本章介绍位运算和位段结构的有关知识。 本章的学习目标 本章教学目的:理解位运算的概念,掌握基本位运算运算符的使用,理解位段的概念。 本章教学重点:基本位运算运算符的使用 本章教学难点:位段的概念 主要内容 11.1 位运算符 11.2 位运算 11.3 位运算应用举例 11.4 位段结构 11.1 位运算符 11.2 位运算 11.2 位运算 11.2 位运算 11.2 位运算 11.2 位运算 11.2 位运算 11.3 位运算应用举例 # include stdio.h int main() {unsigned int n,a,b,c,d; printf(Input a Hex number:); scanf(%x,a); printf(\nInput the number of bit to move:); scanf(%d,n); b=a16-n; c=an; d=b|c; printf(\nThe result of move:%x,d); return 0; } 11.4 位段结构 1. 位段结构的概念 11.5 本章小结 本章介绍了C语言的位运算 。 首先,介绍了C语言的位运算符。 接下来,对C语言的各个位运算符的用法进行了详细介绍。 之后,举例说明C语言位运算的应用方法。 最后,介绍了C语言的位段结构 C语言程序设计 第11章 位运算 本章概述 本章的学习目标 主要内容 a^b:对a与b的各对应位进行“按位异或”运算 按位异或 ^ a|b:对a与b的各对应位进行“按位或”运算 按位或 | ab:对a与b的各对应位进行“按位与”运算 按位与 a2:将变量a的各位全部右移2位,对于无符号数和正整数,高位补0;对于负整数,高位补1(适用于turboc系统) 右移 a2:将变量a的各位全部左移2位,高位丢失,低位补0 左移 ~a:对变量a的全部位取反 按位取反 ~ 举例 功能 位运算符 取反运算“~”是一个单目运算符,运算量在运算符之后,取反运算的功能是将一个数据中所有位都取其相反值,即1变0,0变1。 运算规则为: ~1=0 ~0=1 例11.1 对于无符号的字符型数据 a=(18)10 =2 , 则~a等于2 ,即(237)10 。 C程序如下: 11.2.1 按位取反运算 # include stdio.h int main() { unsigned char a=18,b; b=~a; printf(“~a=%d”,b); return 0; } 运行结果为: ~a= 237 注意以下程序与左面程序及运行结果的区别: # include stdio.h int main() { char a=18,b; b=~a; printf(“~a=%d”,b); return 0; } 运行结果:-19 前一个程序结果很好理解,后一个因为a是带符号数据,因此~a=2的结果是一负数的补码,转换为原码时,第1位符号位不变,对剩余的部分先减1,再全部取反,因此得到的二进制原码为即十进制的-19。 11.2.2 左移运算 左移运算“”是一个双目运算符,左移运算的功能是将一个数据所有位向左移若干位,左边(高位)移出的部分舍去,右边(低位)自动补零。 例11.2 对于无符号字符型数据 a=(18)10 =2 , a 3的结果是2 ,即(144)10 。 C程序如下: # include stdio.h int main() { unsigned char a=18, b; b=a3; printf(“a3=%d”,b); } 运行结果为: a3=144 注意以下程序与左面程序的区别: # include stdio.h int main() {char a=18,b; b=a3; printf(“a3=%d”,b); return 0; } 运行结果为: a3=-112 原因同前,对于带符号数a,因a3得到的2, 是

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档