- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计第十二章
第十二章 位运算 掌握位运算的概念和方法,学会使用位运算符; 学会通过位运算实现对某些位的操作; 了解位段的概念以及位段的定义和引用。 §12.1 相关概念 §12.2 位运算和位运算符 循环移位,将a原来右边n位移到左边(16位表示整数) §12.3 位段 解决的问题:存放某些信息不需要一个字节,如真假值只需要一个二进制位即可; 解决方法: 利用位运算程序处理:设置a,b,c,d分别占2,6,4,4位,从而实现a,b,c,d共享两个字节data;但是操作非常麻烦; 例如将c设置为12=(1100)2,需要进行data = data~(154) | (124) 如需要取出c部分的值,需要(data 4) 15 * 1. 位(bit):是指二进制中的位,它是计算机能 处理的最小单位。 2. 字节(byte):是计算机处理的基本单位。计算 机的内存是按字节进行分配的。一个字 节有八位二进制数组成。所以我们在C语 言中数据类型都是以字节为基本单元。 3. 补码:一个正数的补码是其本身;一个负数的 补码是其绝对值按位取反后加1。计算 机是以补码的形式存放数的。 例如:-7 的补码是 1111 1111 1111 1001 一、位运算的概念 位运算:以二进制位为单位的运算。 二、位运算符 “位运算”仅 限于整数(整型数和字符型)。 位逻辑运算符(~、、^、| ) 位移位运算符(、) 位复合赋值运算符( =、|=、^=、=、=) 1. 位逻辑运算符 ~ (按位求反)、 (按位与)、^ (按位异或) 、| (按位或) 运算规则: ~1=0 ~0=1 00=0 01=0 10=0 11=1 0^0=0 0^1=1 1^0=1 1^1=0 0 | 0=0 0 | 1=1 1 | 0=1 1 | 1=1 例如:main() { unsigned char a,b; a=0x9d; b=0xa5; printf(“~a: %x\n”, ~a); printf(“ab: %x\n”,ab); printf(“a | b: %x\n”,a | b); printf(“a^b: %x\n”,a^b); } 输出结果: ~a: ab: a | b: a^b: 62 85 bd 38 位逻辑运算符的应用: 运算符的应用:①与0相,清0; ②与1相,取指定位 。 (0377, 0177400) | 运算符的应用:与1相 | ,可对某些位定值为1。 ^运算符的应用:与1相^,使特定位翻转; (a=a^b; b=b^a; a=a^b;) 2.位移位运算符 (按位左移)、(按位右移) 运算规则: 移位时,移出的位数全部丢失,移出的空位补入的数与左移还是右移有关。 左移 运算规则: 将各位左移若干位,右端补0; 高位(左端)有溢出时,舍弃; 应用:让一个数乘以2n(舍弃位不包括1),移位运算比乘法运算速度快得多。 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 a=51 a1:102 a2:204 a=115 a1:230 a2:204 1 0 1 1 0 0 1 1 0 右移 无符号数——补入的数全都是0 有符号数——取决于系统(补入0或符号位) 运算规则: 各位数向右移动若干位,右端舍弃; 对于无符号数左端补0; 对于有符号数: 恒补0(逻辑右移); 补符号(算术右移,Turbo C); 应用:让一个数除以2n,移位运算比除法运算速度快得多。 例如:unsigned a=3; a2的十进制值是: a1的十进制值是: 12 1 3.位复合赋值运算符 由位运算符与赋值运算符组成。 =、|=、^=、=、= 例如:a=b相当于a=ab
您可能关注的文档
- (高侯娥)五年级品德教案.doc
- 09第2章学习概念与分类.ppt
- 16语言表达得体20.doc
- 16秋福师《数学教育学》在线作业一.doc
- 2.2.1细胞的生活需要物质和能量.ppt
- 1。1 遗传因子的发现.ppt
- 2009-2011年试题.doc
- 13国民收入决定理论.ppt
- 2009教师资格考试教育理论试卷及答案.doc
- 2010年教师招聘考试-题型分析-解题技巧.doc
- 2025至2030牛肉行业市场深度分析及发展前景与产业运行态势及投资规划深度研究报告.docx
- 2025至2030吉他拨片行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030全球及中国基于云的ITSM行业市场深度研究及发展前景投资可行性分析报告.docx
- 2025至2030中国风力涡轮机制动器行业项目调研及市场前景预测评估报告.docx
- 2025至2030软服务机器行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国非洲锥虫病治疗行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030全球及中国离子色谱系统行业项目调研及市场前景预测评估报告.docx
- 2025至2030手持式数据采集器市场前景分析及产业运行态势及投资规划深度研究报告.docx
- 2025至2030无毒生物农药市场发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030便携式粉尘监测仪行业发展趋势分析与未来投资战略咨询研究报告.docx
文档评论(0)