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

十二章位运算.pptVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多
十二章位运算

第十二章 位运算 掌握位运算的概念和方法,学会使用位运算符; 学会通过位运算实现对某些位的操作; 了解位段的概念以及位段的定义和引用。 §12.1 相关概念 §12.2 位运算和位运算符 §12.3 位段 * * 1. 位(bit):是指二进制中的位,它是计算机能 处理的最小单位。 2. 字节(byte):是计算机处理的基本单位。计算 机的内存是按字节进行分配的。一个字 节有八位二进制数组成。所以我们在C语 言中数据类型都是以字节为基本单元。 3. 补码:一个正数的补码是其本身;一个负数的 补码是其绝对值按位取反后加1。计算 机是以补码的形式存放数的。 例如:-7 的补码是 1111 1111 1111 1001 一、位运算的概念 位运算:以二进制位为单位的运算。 二、位运算符 “位运算”仅 限于整数(整型数和字符型)。 位逻辑运算符(~、、^、| ) 位移位运算符(、) 位复合赋值运算符( =、|=、^=、=、=) 1. 位逻辑运算符 ~ (按位求反)、 (按位与)、^ (按位异或) 、| (按位或) 运算规则: ~1=0 ~0=1 00=0 01=0 10=0 11=1 0^0=0 0^1=1 1^0=1 1^1=0 0 | 0=0 0 | 1=1 1 | 0=1 1 | 1=1 例如:main() { unsigned char a,b; a=0x9d; b=0xa5; printf(“~a: %x\n”, ~a); printf(“ab: %x\n”,ab); printf(“a | b: %x\n”,a | b); printf(“a^b: %x\n”,a^b); } 输出结果: ~a: ab: a | b: a^b: 62 85 bd 38 位逻辑运算符的应用: 运算符的应用:①与0相,清0; ②与1相,取指定位 。 | 运算符的应用:与1相 | ,可对某些位定值为1。 ^运算符的应用:与1相^,使特定位翻转; 2.位移位运算符 (按位左移)、(按位右移) 运算规则: 移位时,移出的位数全部丢失,移出的空位补入的数与左移还是右移有关。 左移——补入的数全都是0 右移 无符号数——补入的数全都是0 有符号数——取决于系统(补入0或符号位) 例如:unsigned a=3; a2的十进制值是: a1的十进制值是: 12 1 3.位复合赋值运算符 由位运算符与赋值运算符组成。 =、|=、^=、=、= 例如:a=b相当于a=ab a2相当于 a=a2 三、 位运算符的优先级 位运算符自身的优先级为(从高到低) : ~、(、)、 、 ^、| 位运算符与其他运算符相比较优先级为(从高到低): ~、算术运算符、(、)、关系运算符、、^、|、逻辑运算符、条件运算符、赋值(复合赋值)运算符、逗号运算符 例如:char a=9, b=020; printf(“%o\n”,~ab1); 输出结果:40 位段:在一个结构体中可以以位为单位来指定 其成员所占内存长度,这种以位为单位 的成员称为位段(或位域)。 如:struct packed_data { unsigned a : 2; unsigned b : 3; unsigned c : 4; int i; }data; 存储单元分配:共4个字节 7 16 4 3 2 a b c i 位段的引用: 结构体变量名. 位段成员名 如:struct packed_data { unsigned a : 2; unsigned b : 3; unsigned c :

文档评论(0)

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

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

1亿VIP精品文档

相关文档