- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 10 章 位运算 本章主要内容 10.1 位运算符和位运算 10.2 位域(位段) 10.1 位运算符和位运算 10.1.1 按位与 10.1.2 按位或 10.1.3 按位异或 10.1.4 按位取反 10.1.5 按位左移 10.1.6 按位右移 10.1.7 位运算的复合赋值运算符 位逻辑运算包括(按位与)、|(按位或)、∧(按位异或)和~(按位取反)四种运算。位运算包括(左移)、(右移)两种运算。除按位取反为单目运算符外,其余都是双目运算符。 10.1.1 按位与 参与运算的两个量,如果相对应的两位都为1,则该位的结果值为1,否则为0。即: 00==0, 01==0, 10==0, 11==1 参与运算的数以补码方式出现。 按位与常用于将某个运算的某些位清0或提取某些位的值。 10.1.2 按位或 参与运算的两个量,如果相对应的两位都是为0,则该位的结果位0,否则为1。即: 0|0==0, 1|0==1, 0|1==1, 1|1==1 参与运算的两个数均以补码出现。 按位或常用于将两个运算量的某些位置1。 10.1.3 按位异或 参与运算的两个量,如果相应的两位相异,则该位的结果为1,否则为0。即: 0∧0==0, 0∧1==1, 1∧0==1, 1∧1==0 按位异或有“与1异或”该位翻转、“与0异或”该位不变的规律。 10.1.4 按位取反 它将参于运算量的相应的值取反(1变0, 0变1)。 10.1.5 按位左移 按位左移运算是将一个运算量的各位依次左移若干位。低位补0,高位舍弃不要。 左移一位相当于该数乘以2,但是,这是以该数左移之后不“溢出”为前提的。所谓“溢出”是指该数已超过机器字长所能容纳的范围。 10.1.6 按位右移 按位右移运算是将一个运算量的各位依次右移若干位。低位被移出,空出的高位对无符数来说补0,对带符号数来说要按最高符号自身填补(如果符号位为1,即负数,则左边补入的全为1;如果符号位为0,即正数,则左边补入的全为0)。 位运算符的运算规则见表10.1。 10.1.7 位运算的复合赋值运算符 C语言提供了五种位运算的复合赋值运算符,它们是=(位与赋值)、| =(位或赋值)、∧=(位异或赋值)、=(按位左移赋值)、=(按位右移赋值)。 例如: a∧=b 相当于 a=a∧b a=b 相当于 a=ab a|=b 相当于 a=a|b a=b 相当于 a=ab a=b 相当于 a=ab 10.2 位域(位段) 10.2.1 位域的定义和位域变量的说明 10.2.2 位域的使用 10.2.1 位域的定义和位域变量的说明 位域是一种特殊形式的结构体结构中的成员,以位为单位来定义结构体中成员的长度。其形式为: struct 位域结构名 {位域列表}; 其中位域列表的形式为: 类型说明符 位域名 : 位域长度 位域变量的说明与结构变量说明的方式相同。可采用先定义后说明,同时定义说明或者直接说明这三种方式。 对于位域的定义尚有以下几点说明: ① 一个位域必须存储在同一个字节中,不能跨两个字节。 ② 由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是不能超过8位二进位。 ③ 位域可以无位域名,这时它只用来作填充或调整位置。 10.2.2 位域的使用 位域的使用和结构成员的使用相同,其一般形式为: 位域变量名?位域名 位域允许用各种格式输出。 * *
您可能关注的文档
- C#程序设计教程 刘瑞新 第11章 使用DataSet访问数据库新.ppt
- C#程序设计实用教程 李正夫 第03章新.ppt
- C#程序设计实用教程 李正夫 第04章新.ppt
- C#程序设计实用教程 李正夫 第05章新.ppt
- C#程序设计实用教程 李正夫 第07章新.ppt
- C#程序设计实用教程 李正夫 第08章新.ppt
- C#程序设计实用教程 李正夫 第11章新.ppt
- C#可视化程序设计案例教程 第2版 史荧中 第1章 Windows应用程序开发入门新.ppt
- C#可视化程序设计案例教程 第2版 史荧中 第2章 窗体与控件新.ppt
- C#可视化程序设计案例教程 第2版 史荧中 第3章 C#程序设计语言新.ppt
文档评论(0)