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语言程序设计 * 第十一章 位和位段 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: Page ? * 11.1 位运算 位运算符 1.位与运算 “”运算的含义是对参与运算的两个运算对象的机器码按二进制方式对相应位进行位与运算,当两个相应位都为1时,运算结果的相应位也为1;否则运算结果的相应位为0。 位与运算有以下2个主要的功能: (1)屏蔽 (2)测0 Page ? * 11.1 位运算 位运算符 2.位或运算 “|”运算的含义是对参与运算的两个运算对象的机器码按二进制方式对相应位进行位或运算,当两个相应位都为0时,运算结果的相应位也为0;否则运算结果的相应位为1。 位或运算的主要功能是置1。 Page ? * 11.1 位运算 位运算符 3.位异或运算 “?^?”运算的含义是对参与运算的两个运算对象的机器码按二进制方式对相应位进行位异或运算,当两个相应位相同时,运算结果的相应位为0;否则运算结果的相应位为1。 Page ? * 11.1 位运算 位运算符 3.位异或运算 “?^?”运算的含义是对参与运算的两个运算对象的机器码按二进制方式对相应位进行位异或运算,当两个相应位相同时,运算结果的相应位为0;否则运算结果的相应位为1。 位异或运算主要有以下3个主要功能: (1)位求反 (2)相等比较 (3)交换两个变量的值 Page ? * 11.1 位运算 位运算符 4.位取反运算 “~”运算的含义是对参与运算的运算对象的机器码按二进制方式对相应位进行位取反运算,1变为0,0变为1。 位取反运算的主要功能是测试某些位是否为1。 Page ? * 11.1 位运算 位运算符 5.位左移运算 “”运算的含义是对参与运算的运算对象的机器码按规定的移位数进行左移,“”运算符的左操作数是需要移位的数据,右操作数是移位的位数。在移位的过程中高位移出的位舍弃,低位左移后补0。“”运算符构成的表达式一般格式为an,其中a需要移位的数据,n是移位的位数。 Page ? * 11.1 位运算 位运算符 6.位右移运算 “”运算的含义是对参与运算的运算对象的机器码按规定的移位数进行右移。“”运算符的左操作数是需要移位的数据,右操作数是移位位数。在移位的过程中低位移出的位舍弃,高位右移后补0或1;如果需要移位的数据是无符号数则补0,有符号数则补符号位。“”运算符构成的表达式一般格式为an,其中a是需要移位的数据,n是移位的位数。 Page ? * 11.1 位运算 位运算符 7.位右移运算 位运算符和赋值运算符可以组成复合的位运算赋值运算符,具体含义和复合的算术赋值运算符相似。所有的复合的赋值运算符优先级和结合性都是一样的。 复合的位运算赋值运算符有:=,|=,^=,=,=。 Page ? * 11.1 位运算 位运算举例 7.位右移运算 位运算符和赋值运算符可以组成复合的位运算赋值运算符,具体含义和复合的算术赋值运算符相似。所有的复合的赋值运算符优先级和结合性都是一样的。 复合的位运算赋值运算符有:=,|=,^=,=,=。 Page ? * 11.2 位段 位段结构体类型的定义 位段结构体类型定义的一般形式是: struct 位段结构体类型名 { ? unsigned int位段名1: 整型常量表达式1; ? unsigned int位段名2: 整型常量表达式2; ? …… ? unsigned int位段名n: 整型常量表达式n; }; 其中位段结构体类型名可以缺省,位段成员的数据类型只能是无符号整型,“:”后的整型常量表达式表示位段成员所占的二进制位位数。 Page ? * 11.2 位段 位段结构体类型变量的定义 位段结构体变量的定义方法和结构体变量的定义方法完全一致。 例如: struct FLAG { ? unsigned int a: 2; ? unsigned int b: 3; ? unsigned int c: 2; }fl

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档