“按位或”运算符.PPT

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“按位或”运算符

单操作数参与的位运算符 ~ 取反 左移 右移 2. 左右两边各有一操作数参与的位运算符 按位与 | 按位或 ? 按位异或 3. 实际应用时,常通过位运算的组合运算对文件进行加密、解密和与硬件之间的操作。 4. 不提倡对负数进行位运算。 本章重点 习 题 一、单选题 二、判断题 三、填空题 四、编程题 【题11.31】 【题11.32】 【题11.34】 【题11.37】 【题11.38】 【题11.39】 全部 第1章 引言 第11章 位运算 本章主要内容 1.按位取反运算 2.按位左移运算 3.按位左移运算 4.按位与运算 5.按位或运算 6.按位异或运算 7.复合位运算 第11章 位运算 ? C语言提供的位运算符共有6个: 运 算 符 含 义 优 先 级 表达式样例 ~ 按位取反 14 ~a 按位左移 11 a4 按位右移 11 a4 按位与 8 ab ^ 按位异或 7 a^b | 按位或 6 a|b 11.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)10 11.1 按位取反运算符~ ?小结: (1) C语言允许对有符号整型数进行位运算 缺点:不便于掌控程序本身的计算结果。 (2) 位运算适合于无符号的整型数 对于需要进行位运算操作的数据,通常应定义成unsigned型。 (3) 位运算符不适合于浮点型数据。 11.1 按位取反运算符~ 【例11-1】?阅读下面的程序,了解不同类型的变量进行按位取反运算的规则。 /*example11_1.c 了解按位取反运算的规则*/ #include stdio.h void 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 ↘丢弃 ↘补入 于

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档