全国计算机等级考试2C课程第12讲 位运算.pptVIP

全国计算机等级考试2C课程第12讲 位运算.ppt

  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文档。上传文档
查看更多
全国计算机等级考试2C课程第12讲 位运算

作者:张旭仟 版权所有 欢迎盗版 全国计算机等级考试 3C课程 第十二讲 位运算 位运算的概念 前面我们所学的各种运算,都是以字节作为基本单位进行的。所谓位运算,就是以二进制位为基本单位进行的运算 C语言提供了6种基本位运算符,如下所示: 此外,位运算符也可以与赋值运算符一起组成复合赋值符。如: =、|=、^=、=、= 位运算的概念 优先级: 按位取反(~) 优先级 2 位移(、) 优先级 5 位与() 优先级 8 位异或(^) 优先级 9 位或(|) 优先级 10 结合性: 按位取反(~) 右结合性 其他 左结合性 说明: 位运算符中除按位非(~)为单目运算符外,其他均为双目运算符。 位运算的运算量只能是整型或字符型的数据,不能为实型数据。 如果参加位运算的运算量是负数,则首先要将其以补码形式表示为二进制数,然后再按相应规则进行运算。 按位非(求反)运算 :~ 功能: 对参与运算的数的各二进位按位求反,即将0变1,将1变0。 例如: ~025是对八进制数25(即二进制按位求反,计算方法如下: 按位非(求反)运算 :~ 例程 左移运算 : 功能: 把“?”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数 运算规则 低位补0 ,高位溢出丢弃。 例如: 左移运算 : 说明 从上面的例子可以看出,在不损失有效数字的情况下,每左移1位,相当于该数乘以2,左移2位相当于该数乘以2的2次方(4),152,结果为60,即相当于15乘以4。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。 例如: 表达式a4 ,是指把变量a的各二进位向左移动4位。 如果有语句:a=3(3的二进,则左移4位相当于3*2^4,结果为即十进制48)。 右移运算 : 功能: 把“”左边的运算数的各二进位全部右移若干位,“”右边的数指定移动的位数 说明: 对于无符号数:右移时高位补零; 对于有符号数:正数右移时在高位补0,负数右移时在高位补1。其中左边补0称“算术右移”,左边补1称“逻辑右移”。 例如: 若a=017,二进制形式十进制为15);a2运算后,舍弃低2位得(十进制为3) 若a=-5,二进制形式a2运算后,舍弃低2位得(十进制为-2) 右移运算 : 例程 ?小练习: 1、若有以下程序(2009年9月) int r=8; printf(%d\n,r1); 输出结果是 A)16 B)8 C)4 D)2 按位与运算 : 运算规则: 参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。即: 0&0=0,0&1=0,1&0=0,1&1=1 按位与运算 : 按位与的常用功能1:清零 若想对一个存储单元置零,只要用一个全0的二进制数与其进行&运算,即可达到清零目的。 按位与运算 : 按位与的常用功能2: 取一个数中的特定位: 若想对一个二进制数的某些位置零,其他位保持不变,只需将找一个数(对应于要置0的位全部为0,对应于要保持不变的位全部为1),然后做按位与运算即可。 ?小练习: 2、有以下程序(2010年3月) #include stdio.h main() { int a=2,b=2,c=2; printf(%d\n,a/bc); } 程序运行后的输出结果是 A)0 B)1 C)2 D)3 按位异或运算 :^ 运算规则: 当两对应的二进位相异时,结果为1,反之为0。即: 0^0=0,0^1=1,1^0=1, 1^1=0 按位异或运算 :^ ^运算符的应用 ^运算可以使特定位翻转。 设想使其低4位翻转,即1变为0,0变为1。可以将它行^运算,即: ?小练习: 3、变量a中的数据用二进制表示的形式变量b中的数据用二进制表示的形式若要求将a的高4位取反,低4位不变,所要执行的运算是(2008年4月) A)a^b B)a|b C)ab D)a4 按位或运算 :| 运算规则: 只要对应的二个二进位有一个为1时,结果位就为1。即 0|0=0,0|1=1,1|0=1,1|1=1 例如: 对于060|017,计算方法如下: 按位或运算 :| 按位或的用途: 按位或运算常用来对一个数据的某些位定值为1。 例如:如果想使一个数a的低4位改为1,只需将a与017(1111)进行按位或运算即可。 按位或运算 :| 例程 ?小练习: 4、有以下程序 #include stdio.h main() {

文档评论(0)

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

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

1亿VIP精品文档

相关文档