- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计教程(第5版)人民邮电出版社第11章 位运算 李丽娟 2019年8月第11章 位运算本章主要内容1.按位取反运算2.按位左移运算3.按位左移运算4.按位与运算5.按位或运算6.按位异或运算7.复合位运算第11章 位运算? C语言提供的位运算符共有6个:运 算 符含 义优 先 级表达式样例~按位取反14~a 按位左移11a4 按位右移11a4按位与8ab^按位异或7a^b|按位或6a|b11.1 按位取反运算符~ ?按位取反表达式:~m 作用:对m的二进制值按位取反,即将1变成0,将0变成1。 例如,若有:int i=85; i的二进制表示为: i=(85)10=(0000 0000 0101 0101)2 对i按位取反:~i=(1111 1111 1010 1010) 2 此时,~i的最高位为1,代表负数。为原数的补码形式。 实际上:~i =(1111 1111 1010 1010) 2| 反码+1 =(1000 0000 0101 0101) 2 +1 =(1000 0000 0101 0110) 2 =-86 (注:负数取反时。符号位不变)11.1 按位取反运算符~ 对于无符号整型数:unsigned int i=85; i的二进制表示为: i=(85)10=(0000 0000 0101 0101)2 对i按位取反:~i=(1111 1111 1010 1010) 2 此时,~i的最高位为1,仍然代表正数。 因此,~i值就是i按位取反后的值: ~i=(1111 1111 010101)2 =(65450)1011.1 按位取反运算符~ ?小结: (1) C语言允许对有符号整型数进行位运算 缺点:不便于掌控程序本身的计算结果。 (2) 位运算适合于无符号的整型数 对于需要进行位运算操作的数据,通常应定义成unsigned型。 (3) 位运算符不适合于浮点型数据。11.1 按位取反运算符~【例11-1】?阅读下面的程序,了解不同类型的变量进行按位取反运算的规则。/*example11_1.c 了解按位取反运算的规则*/#include stdio.hvoid main(){ int i1=32767,i2=-32767,i3=10,i4=-10,i; unsigned int u1=65535,u2=0,u3=10,u; printf(i1=%d,~i1=%d\n,i1,~i1); printf(i2=%d,~i2=%d\n,i2,~i2); printf(i3=%d,~i3=%d\n,i3,~i3); printf(i4=%d,~i4=%d\n,i4,~i4); printf(u1=%u,~u1=%u\n,u1,~u1); printf(u2=%u,~u2=%u\n,u2,~u2); printf(u3=%u,~u3=%u\n,u3,~u3);}11.2 按位左移运算 ?按位左移表达式的形式: mn;作用:将m的二进制位全部左移n位,右边空出的位补零。 高位左移后溢出,舍弃不起作用。若有: unsigned int m=65;即:m=(65)10=(0000 0000 0100 0001)2则:m2= 00 00 0000 0100 0001 00 ↘丢弃 ↘补入于是:m2=(0000 0001 0000 0100)2=26011.2 按位左移运算 对于有符号的整型数,符号位是保留的。若有:int n=?65即:n=(?65)10=(1000 0000 0100 0001)2实际计算时,是对其补码进行运算的: 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 →?65的反码 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 →?65的补码 (n)补1=(1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0)补码 ↘保留 ↘补入因此: n 1=(1111 1111 0111 1110)补码 =(1000 0000 1000 0010)2 =?13011.2 按位左移运算 ?小结: 按位左移1位相当于原操作数乘以2; 因此,左移n位,相当于操作数乘以2n。?思考: 若整型数的字节长度为2个字节(16位),请分析下面的几种情况: (1) n为有符号整型变量,且n为偶数时,语句: n15; 会是什么结果? (2) n为有符号整型变量,且n为奇数时,语句: n15; 会是什么结果??阅读【例11-2】的程序,了解按位左移运算的规则作用。11.3 按位右移运算 ?按位右移表达式的形式: mn;作用:将m的二进制位全部右移n位。 左边空出的位,分两种情况处理: ① m
您可能关注的文档
最近下载
- 2025年三年级数学校本作业.pdf VIP
- 中小学诗词大会题库(含答案).docx VIP
- CCTV雨污水管道检测缺陷内容判断依据判断标准.pdf
- 中国煤炭生产企业温室气体排放核算方法与报告指南(试行).pdf
- (高清版)-B-T 2423.18-2021 环境试验 第2部分:试验方法 试验Kb:盐雾,交变(氯化钠溶液).pdf VIP
- 长安汽车第二十二届技术技能运动会(新能源汽车电控技术)考试题库(含答案).docx VIP
- 国企法律基础知识培训.pptx
- 减温减压装置说明.pdf VIP
- 人教版一年级数学上册11-20各数的认识个位-十位练习题1电子教案.docx VIP
- 义务教育版(2024)三年级全一册第13课《制作数字相册》.pptx VIP
有哪些信誉好的足球投注网站
文档评论(0)