C语言程序设计教程教学课件作者杨丽波第十一章:位运算课件.pptVIP

C语言程序设计教程教学课件作者杨丽波第十一章:位运算课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计教程教学课件作者杨丽波第十一章:位运算课件.ppt

第十一章:位运算 杨丽波 朱迅 汤承林 编著 刘长荣 主审 回顾 位运算的基本概念 在计算机内存中,所有的数据都是以二进制的形式进行存储和运算的,位运算就是指对二进制位的运算。 位运算的操作对象一般是整型或者字符型 。 位运算是C语言的低级语言特性,广泛用于对底层硬件和外围设备的状态检测和控制。 位运算符 位运算符包括位逻辑运算符和移位运算符,如表11-1所示: 表11-1 位运算符 说明: (1)在位运算符中,除“~”以外,均为二目运算符,即要求两侧各有一 个数据。 (2)位运算的数据只能是整型或者字符型,不能是实型数据。 位逻辑运算符 1.按位与() 该运算符表示将其两边的数据对应的二进制位按位进行“与”运算,两 个全为1,结果为1,否则结果为0。 例如: a b则ab 2.按位或(|) 该运算符表示将其两边的数据对应的二进制位按位进行“或”运算,二者 中有一个为1,结果就为1,否则为0。 例如: a b则a|b 位逻辑运算符 3.按位异或(^) 异或运算符表示将其两边的数据对应的二进制位按位进行“异或”运 算,若二者相同,结果为0,若相异,结果为1。 例如: a b则a^b 4.按位取反(~) 该运算符的操作数只有一个,作用是将该二进制数的每一位都取反,1 的反为0,0的反为1。 例如: a则~a b则~b 位逻辑运算符 移位运算 1.左移运算:将一个数的二进制形式的各个位全部向左平移若干位,左 边移出的部分被丢弃,右边补0。 例如: a 则 a2的结果 说明: ①运算符并不会改变操作数的值,要把移动后的结果保存到变量 a中,可以使用复合赋值运算符=。 ②向左移动1位,相当于乘以2,左移n位,相当于乘以2n。 2.右移运算:将一个数的二进制形式的各个位全部向右平移若干位,右 边移出的部分被丢弃,左边对于无符号变量(unsigned)填充0,对于有 符号变量填充符号位。 移位运算 例如: #includestdio.h void main() { unsigned char a=123; printf(%d\n,a2); } 程序的输出结果为30。 位运算的应用实例 位运算的应用实例 总结 位运算是对变量的二进制位进行的运算,位运算的操作对象一般是整型或者字符型。位运算包括位逻辑运算和移位运算。 位逻辑运算包括按位与运算()、按位或运算(|)、按位异或运算(^)、按位取反运算(~)。 移位运算包括将二进制数的各个位进行左移运算()或者右移运算()。 * * 右移 异或 ^ 左移 位或 | 取反 ~ 位与 含义 运算符 含义 运算符 #includestdio.h void main() { int a=3; int b=7; printf(ab=%d\n,ab); printf(a|b=%d\n,a|b); printf(a^b=%d\n,a^b); printf(~a=%d\n,~a); printf(~b=%d\n,~b); } 【例11-1】运行下列程序,输出位逻辑运算的结果。 图11-1 例11-1运行结果 解决方法:使用“按位异或”运算,在需要转置的位上与1进行“按位异 或”,保持不变的位与0进行“按位异或”。 ^= 原数改变为【例11-2】位转置,即将某些位设置与原来相反。将二进制的右数第3位转置,其它位不变。 解决方法:使用“按位与”运算,在需要置为0的位上与0进行“按位与”,保 持不变的位与1进行“按位与”。 原数改变为【例11-3】置位0,即将一个二进制数的某些位置为0。将二进制数最低位置为0,其它位不变。

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档