C语言基础自学总结七位运算.docxVIP

  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语言基础自学总结七位运算

C语言基础自学总结之七:位运算概念:意思是:位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。针对一个变量的某一位操作就称之位,位操作。一.位运算符要点:1. :按为与2. |:按位或3. ^:按位异或4. ~:按位取反5. :左移6. :右移1. :按位与例子1:#include stdio.hint main(void){printf(%d\n,53);//5按位与3,是1,就是每一位进行相与,与运算:与上0还是0,1与上1为1,0与上1为0,用的是补码相与,printf(%d\n,5-3);//是补码的相与return 0;}2. |:按位或例子1:#include stdio.hint main(void){printf(%d\n,5|3);//或运算就是对数字的每一个进行或运算,或运算:每一位只要有一个1就是1,都是0时才为0,同样是补码运算。return 0;}3. ^:按位异或例子1:#include stdio.hint main(void){printf(%d\n,5^3);//异或每一位进行异或,相同为假,不同为真。还是补码进行异或,return 0;}4. ~:按位取反例子1:#include stdio.hint main(void){printf(%d\n,5~3);//进行每一位取反,还是补码取反return 0;}5. :左移例子1:#include stdio.hint main(void){printf(%d\n,51);//就是把”前面数字“每一位向左边移“后边数字“的位数,也就把“5”的每一位,相左边整体移1位,最后超出范围的舍去,不够的补0,左移1位相当于乘以2,左移2位是乘以4,左移n位相当于是乘以2的n次方return 0;}5. :右移例子1:#include stdio.hint main(void){printf(%d\n,51);//右移的方式移左移一样,超出范围的舍去,不够的正数补0,负数补1,正数右移n位相当于除以2的n次方,但是在不同的系统下,结果不一样。return 0;}二. 位操作要点:1、如果相求a的第n位(从0位起)是1还是0,就用a与上1左移n位,如果等于1第那位就上1,若果等0第n位就是0,a=1n,2.如果想把a的第n位(从0位起)变成1,就用a或上1左移n位,a|=1n。3.如果想将a的第n位(从0位起)变成0,就用a与上1左移n位取反,a=~(1n)。4.如果想将a的第n位(从0为起)取反,就用a异或上1左移n位,a^=1n.例子1:#include stdio.hint main(void){int a=1; a|=12;//把a的第2位变成1printf(%d\n,a); a=~(12);//把a的第2位变成0printf(%d\n,a); a^=a2;//把a的第2位取反printf(%d\n,a);if (a=a2) {printf(a的第二位是1);}else{printf(a的第二位是0); }//判断a的第二位是1还是0return 0;}

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档