C语言程序设计第十二章(位运算).ppt

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

第十二章 位运算;一.位运算符;如: a=15则 ~ a 例12.1 main( ) { int a=0,b=1; printf (“ %d,%d \n”, ~a ,~b ) ; printf (“ %d,%d \n”, !a , !b ) ; } 运行结果: ?-1 , -2 1 , 0;2. (按位与运算) 作用: 对参加运算的两个二进制数逐位进行逻辑与运算。 如: a b 规则: 00 = 0 , 10 = 0 , 01 = 0 , 11 = 1 例如: a =1 , b = -2 , 则: a b = 0 例: main( ) { int a=5,b=12, d; d=ab ; printf(“%d%d=%d\n”, a,b,d); } 输出: 512 = 4 此例说明: a , b 两个操作数参加 运算前后,其值不变。;3. | (按位或运算) 作用: 对参加运算的两个二进制数逐位进行逻辑或 运算。 如: a | b 规则: 0 | 0 = 0 , 1 | 0 = 1 , 0 | 1 = 1 , 1 | 1 = 1 例如: a = 1 , b = -1 , 则: a | b = -1.;4. ^ (按位异或运算) 作用: 对参加运算的两个二进制数逐位进行逻辑 异 或运算. 如: a^b 规则: 0^0 = 0 , 1^0 = 1 , 0^1 = 1 , 1^1 = 0 例如: a=15, b=0, 则: a^b=15;例 : main ( ) { int a = 3 , b = 4 ; a=a^b; b=b^a; a=a^b; printf(“%d,%d”,a,b); } 输出: 4, 3 结论: 利用异或运算,可以设置第三个变量就可以 实现 两个整型变量值的交换。;5. (左移位运算) 作用: 将操作数的各个二进位顺序左移。右端空出的位补 0,而移出左端之外的位则舍去。 如: a n表示将a 的各个二进位顺序左移 n 位( n 为正整数)。 例如: a = 25 则 a3 结果为 200 ;说明: (1) 左移运算相当于乘 2 运算。 对无符号数,左移 1 位,相当于乘 2 。左移 n 位,则乘 2n 。 (2) 对于用补码表示的正数,如果左移出的全部是 0 ,且移出后的最高位仍是0。 (3) 对于用补码表示的负数,如果左移出的全部是 1,且移出后的最高位仍是 1 。如:;(4) 若非上述情况 ( 如:左移出现溢出时),就不能简单地用 乘 2 来计算. 如: 有符号字符型数 64 , 当它左移 2 位时,结果为 0 。; 6. (右移运算符) 作用: 将操作数的各个二进位顺序右移。左端空出的位补0 或补 1,而移出右端之外的位则舍去. 如: a n 表示将 a 的各个二进位顺序右移 n 位 说明: 右移运算的结果与操作数的符号有关 1) 对无符号数进行右移,左端空出的位一律补 0 。 2) 对用补码表示的有符号数,则随系统而定。 “逻辑右移”空位一律补 0 ; “算术右移”正数右移,空位补 0; 负数右移, 空位补1 。(Turbo C中采用算术右移) ;例如: a = - 32768;二. 1. 位运算符的优先级 结合性: ~ 运算按从右至左 , 其余按从左至右 例: x ~ 077 x ( ~ 077)

文档评论(0)

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

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

1亿VIP精品文档

相关文档