- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 位 运 算 教学目标 ? 了解常用的位运算符; ? 理解位运算符和逻辑运算符的不同; ? 掌握位运算的使用; ? 熟练掌握位运算的运算方法。 11.1 位 运 算 符 11.1.1 取反运算符 取反运算符“~”是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变1,1变0。例如,~026是对八进制数26(即二进制按位求反。 ~ 000000000010110 ↓ 111111111101001 【例11-l】对八进制数0217(即二进制数1000 1111)按位取反。 ? ~ ?1000 1111 ↓ 0111 0000 其按位取反后为八进制数0160(即二进制数0111 0000)。 11.1.2 移位 移位运算符“<<”和“>>”是指将变量中的每一位向左或向右移动。 经过移位后,一端的位被“挤掉”,而另一端空出的位以0填补,所以,C语言中的移位不是循环移动的。 1.左移运算符(<<) 其通常形式为 变量名<<移位的位数 左移运算符用来将一个数的各二进位全部左移若干位。例如: a=a<<2 2.右移运算符(>>) 其通常形式为 变量名>>移位的位数 a:1001011111101101 a>>1: 0100101111110110(逻辑右移时) a>>1: 1100101111110110(算术右移时) 11.1.3 “按位与”运算符 按位与的一般书写格式为 表达式1 表达式2 参与运算的数以补码的方式出现。 00=0,01=0,10=0,11=1。 按位与有如下一些特殊的用途。 (1)清零。 【例11-2】右移运算符和按位与运算符举例。 #include stdio.h main() { unsigned a, b; printf(input a number: ); scanf(%d, a); b=a5; /* a右移5位,将右移后的值赋给b */ b=b15; /* 将b和15按位与的值赋给b */ printf(a=%d\tb=%d\n, a, b); } 运行结果为 input a number: 255 a=255 b=7 (2)取一个数中某些指定位。 (3)要想将哪一位保留下来(置1)。 ? 0101 0100 (十进制数84) 0011 1011 (十进制数59) ?0001 0000 (十进制数16) 即 a=84,b=59,c=ab=16。 11.1.4 按位或运算符 按位或运算符“|”是双目运算符,其功能是参与运算的两数各对应的二进位相或。按位或的一般书写格式为 表达式1 | 表达式2 0|0=0,0|1=1,1|0=1, 1|1=1。 【例11-3】利用按位或将指定位设置为1。 假设将x从右数第3位(二进制位)设置为1,则只需执行如下的表达式即可: x = x | 04 式中,x的二进制表示为0101 0001 0111 0010,04的二进制表示为0000 0000 0000 0100,按位或后的x值为0101 0001 0111 0110,即 ???0101 0001 0111 0010 ?0000 0000 0000 0100 0101 0001 0111 0110 11.1.5 异或运算符 按位“异或”的一般书写格式为 表达式1 ∧ 表达式2 0∧0=0,0∧1=1,1∧0=1,1∧1=0。 【例11-4】9∧5可写成算式如下: 0000 1001 ∧ 0000 0101 ?0000 1100 (十进制为12) 所以,9∧5的值为12。 11.2 位运算符的运算功能 【例11-5】将整型数据n的后5位数据置为0,其余各位不变。 #include stdio.h main() { int n ; printf(input n:) ; scanf(%d, n) ; n=~037; printf(%d\n,
您可能关注的文档
- C程序设计 作者 王丽娟 第7-12章 第12章.ppt
- C程序设计 作者 赵山林 5.ppt
- C程序设计 作者 赵山林 6.ppt
- C程序设计 作者 赵山林 7.ppt
- C程序设计 作者 赵山林 8.ppt
- C程序设计 作者 赵山林 10.ppt
- C程序设计 作者 赵山林 11.ppt
- C程序设计 作者 赵山林 12.ppt
- C程序设计 作者 赵山林 13.ppt
- C程序设计与实例教程 作者 曾令明 全书教案_ 第2章.ppt
- C语言程序设计 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第2章 基本数据类型.ppt
- C语言程序设计 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第4章 程序设计知识.ppt
- C语言程序设计 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第5章 语句和控制流.ppt
- C语言程序设计 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第9章 结构与联合.ppt
- C语言程序设计 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第10章 其他数据类型.ppt
- C语言程序设计 作者 孟庆昌 陈海鹏 马鸣远 刘振英 第11章 预处理、输入输出和文件操作.ppt
- C语言程序设计 作者 孟庆昌 第01章.ppt
- C语言程序设计 作者 孟庆昌 第02章.ppt
- C语言程序设计 作者 孟庆昌 第05章.ppt
- C语言程序设计 作者 孟庆昌 第07章.ppt
文档评论(0)