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

《程序设计与C语言》课件第10章.ppt

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

③按位异或运算∧可用于将一个数的指定位翻转,其他位不变。方法同样是先找出该数所需要的掩码,再将原数与掩码进行异或运算。掩码的设计方法是:在和需要翻转位相应的位置1,其余位置0。例如,对3244的低字节的高4位翻转。掩码为:0000000011110000(360)8,则n=n∧0360为:0000110010101100 3244∧0000000011110000 (360)8 0000110001011100 3164④取反运算常用于掩码的设计。如欲设计一掩码,其最低位为0,其余位皆为1。对16位系统而言,其形式为: 1111111111111110对32位系统而言,其形式为: 11111111111111111111111111111110把它们用八进制表示,分别是0177776和037777777776。这种由二进制到八进制的转换过程,也需要一定的计算量,但如果用~1表示则相当简单。所以不管对16位还是32位系统,要对数值n的末位置0,都可以写成下面的形式: n=n~1注意:~1≠-1。如对16位系统而言: ~1=1111111111111110 -1=1111111111111111(补码表示)~运算符的优先级高于算术运算符、逻辑运算符和其他的位运算符,如~ba等价于(~b)a。2.字位移位运算符和这两个运算符的使用格式是:〈数值〉〈左移位数〉〈数值〉〈右移位数〉例如:a=a3;表示将a的二进制表示向左移3位。结果把a最左边的3位挤掉,右边补3个0。若a=16,其二进制则a3之后变即十进制的128,而128=16×23。由此可知,左移运算时,若移掉的位中无1,则左移n位后的值是原值的2n倍。运算 a3;是把a向右移3位,则移掉了a最右边的3位,左边补3个0,即十进制的2,它等于16除以23。由此可知,若右移n位,则移动后的值是原值的1/2n。上述规则适用于正数及无符号数。若移动的数为负数,则在向左移时,符号位上的数字会发生变化,可能为1,也可能为0,因此结果是不确定的;而右移时,对符号位有不同的处理办法:若该位置成0则称逻辑右移,若该位置成1则称算术右移。例如:a:1001011111101101a1:0100101111110110 (逻辑右移)a1:1100101111110110 (算术右移)采用算术右移能保证数值的正负性不变。TurboC采用算术右移。10.4.2与位运算有关的复合赋值运算符位运算符和赋值运算符结合起来可构成如下的复合赋值运算符: =、|=、=、=、∧=复合赋值运算符的左边必须是变量,右边是表达式。例如: a=2;等价于 a=a2;又如: b|=c;等价于 b=b|c;对两个长度不等的数进行位运算时,右边对齐,短的数的左边或添加0(对正数或无符号数),或添加1(对负数),添加到两个数等长后再进行位运算。【例10-9】取出一个整数从右边第m位开始的右n位。编程思路:从右边第m位开始的右n位距最右端的距离是m-n,所以向右移m-n位后再与适当的掩码进行与运算,即可得到所需的位。这里的掩码应该是右边n位为1,其余位皆为0。实现的方法是把~0左移n位后再取反,即~(~0n)。因为:~0=1111111111111111~0n=1111111111110000(设n=4)~(~0n)=0000000000001111于是可编程如下:#includestdio.hmain(){unsignedinta,m,n;printf(″Inputanunsignednumber\n″);scanf(″%u″,a);printf(″m=?n=?\n″);scanf(″%d%d″,m,n);a=a(m-n)~(~0n);printf(″result=%u\n″,a);return0;}运行输出:Inputanunsignednumber57↙m=?n=?63↙result=7

文档评论(0)

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

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

1亿VIP精品文档

相关文档