网站大量收购闲置独家精品文档,联系QQ:2885784924

新编C程序设计教程课件作者赵忠孝第9章节.pptVIP

新编C程序设计教程课件作者赵忠孝第9章节.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.1 位运算符 C语言提供了六种位运算符,其含义、优先级和结合性如表9-1所示: 9.1.1 按位与运算 (1)格式:xy (2)规则:对应位均为1时才为1,否则为0:39=1。 例如,39=1: 0011 1001 0001=1 (3)主要用途:取(或保留)1个数的某(些)位,其余各位置0。 ? 【例9.1】将a的高八位清 0,低八位保留 void main() { int a=-5,b=255,c; /* b=255的二进制数为0000000011111111*/ c=ab; /* 将清除a的高八位,保留低八位*/ printf(a=%d ,b=%d,c=%d(%o),a,b,c,c); } 9.1.2 按位或运算 (1)格式:x|y (2)规则:对应位均为0时才为0,否则为1:3|9=11。 例如,3|9=11: 0011 | 1001 1011=11 (3)主要用途:将1个数的某(些)位置1,其余各位不变。 【例9.2】把a的高八位置1 ,低八位保留。 #include stdio.h void main() { int a=9,b=-256,c; /* b=-256的二进制补码为1111111100000000*/ c=a|b; /*将a的高八位置1,低八位保留*/ printf(a=%d b=%d c=%d(%o),a,b,c,c); } a=9 b=-256 c=-247(177411) 9.1.3 按位异或运算──^ (1)格式:x^y (2)规则:对应位相同时为0,不同时为1:3^9=10。 (3)主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。 例如9^5可写成算式如下: ^ (十进制为12) 下面举例说明异或运算的应用: (1)按位异或运算通常用来将变量的值清“0”,即a^a,也就是自己和自己异或。 例如: ^ (2)按位异或运算还常常用来进行加密和解密的运算。 例如,设5为密钥。 加密运算: (9是明码) ^ (5是密钥) (加密后密码为12) 解密运算: (12是密码) ^ (5是密钥) (解密后得到明码9) (3)从上面的例子可看到,与“1”异或则取反,与“0”异或则保留。利用这个特性,可将变量的某些位取反或保留。例如,将变量a的1、3、5、7……取反,其他位保留,则表达式为: a^21845 (21845二进制数为0101010101010101)。 【例9.3】用异或运算对字符串进行加密和解密。 #include stdio.h void main() {char s[30]=I am a student; int i=0; puts(s); /*输出明文*/ while(s[i]!=\0) {s[i]=s[i]^6; /*字符加密,6位密钥*/ i++; } puts(s); /*输出密文*/ i=0; while(s[i]!=\0) {s[i]=s[i]^6; /*字符解密,6位密钥*/ i++; } puts(s); /*输出解密的明文*/ } 9.1.4.按位取反──~ (1)格式:~x (2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。 (3)主要用途:间接地构造一个数,以增强程序的可移植性。 9.1.5.按位左移── (1)格式:表达式1表达式2 (2)规则:其功能把表达1的各二进制位全部左移表达2指定的位数,移动后高位丢弃,低位补0。 例如: a4

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档