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

c语言程序设计课件要位运算.ppt

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

位运算 课程:程序设计语言 教材:谭浩强《C程序设计》第三版 讲授:陈慧炜 本章重点 6种基本位运算符的使用及其功能 位运算符的综合使用 位段的理解和应用 整数的二进制表示 整数的二进制表示 求负数-47的补码 原码: 反码: 补码: 位与字节 位运算符 1、按位与() 00=0,01=0,11=1 该位只要有一个0便为0 计算: (3) (5) 按位与的用途 (1)清零(用0相) (2)保留指定位(用1相) (3)用来检测某个位是否置位(用1相) 例:有一数据b,想测试其第4位是否为1? 分析: 1.位号是从右向左数的 2. 设置一个只有第4位为1的二进制数a与b进行与运 算,如果结果则第4位为1;反之结果则第4位为0。 2、按位或(|) 0|0=0,0|1=1,1|1=1 该位只要有一个1便为1 按位或的用途: (1)置位:用1去跟某些位或,使某些位为1,如: | (2)保留原位:用0去跟某些位或,如上例前4位 3、异或(^) 0^0=0,0^1=1,1^1=0 异号为1(真),同号为0(假) 异或运算符的用途: (1)任何数与本身异或,则为0 ^ (2)与0异或,则保留原值。 (3)与-1异或,相当于将各位取反(因为-1的每个位都为1)。 (-1) (4)特定位翻转。将需要翻转的位与1异或即可。 ^ (5)交换两个值,不用临时变量。 例:a=3,b=4,将a和b的值互换,可以用以下赋值语句实现: a=a^b;b=b^a;a=a^b; a=011 ^ b=100 a=111 ^ b=100 b=011 ^ a=111 a=100 最后,a=100 (4) b=011 (3) 实现了交换 4、取反(~) ~0=1,~1=0 举例:使16位整数a最低位为0 分析: a1111111111111110 保留前15位,将最低位清零; 1111111111111110这个数值为多少,较难运算; 1111111111111110 =~0000000000000001 0000000000000001的值较为简单,就是1; 所以可以用:a=a~1的表达式达到要求。 5、左移运算符() 左移n位,右补n个0。 左移n位相当于乘以2^n,左移位运算速度比乘法快。 但是,左移位可能溢出,实际结果不会超出指定的整数类型的值域。 unsigned char x = 37 3 ; (37) 3 (40) 6、右移运算符() 右移n位相当于除以2^ n,右移位运算速度比除法快。 2 注意: 无符号数:右移时左边补0; 有符号数:非负整数——右移位时左边补0; 负整数——逻辑右移:左边补0; 算术右移:左边补1 检查一下你所用的计算机系统的C编译系统执行的是逻辑右移还是算术右移: 程序代码: #includestdio.h void main( ) { int a=~0,b; b=a1;

文档评论(0)

150****4233 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档