C语言程序设计:第十一章 位 运 算_第1页
C语言程序设计:第十一章 位 运 算_第2页
C语言程序设计:第十一章 位 运 算_第3页
C语言程序设计:第十一章 位 运 算_第4页
C语言程序设计:第十一章 位 运 算_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十一章位运算重点:位运算符:&|^~<<>>位段11.1概述字节与位:计算机内存有字节(Byte)组成,每一个字节给予一个编码—地址。一个字节有若干二进制位(bit)组成。有若干个字节组成一个存储单元—字(word)。一般:一个字节由8个二进制位组成。不同类型的数有不同的字节组成的。原码:简单地把最高作为符号位,其余各位代表数值本身的绝对值。+700000111-710000111反码:一个正数,反码与原码相同。一个负数,其反码:除符号位外其余各位取反,0—11—0127的反码:01111111-127的反码:10000000补码:正数:原码、反码、补码相同。+700000111负数:最高位为1,其余各位为原码取反,整个数加1。-7原码:10000111-7

的补码:取反:11111000加1:1111100111.2位运算C语言提供如下位运算符:&—按位与|—按位或^—按位异或~—按位取反<<—左移>>—右移注意:除~外,其余全部为双目运算符位运算符只能用于整型、字符型数据,不能用于实型数据。

“按位与”运算符&规则:0&0=00&1=01&1=11&0=0例如:3&5=?3的补码:000000115的补码:00000101&000000013&5=1按位与的用途:部分位清零:和1进行与运算保持原值,和0进行与则清为0。例如可以把数01111111的倒数第三位清零。用11111011和该数进行与运算。取一个数中若干位的值。例如可以把数:01101111中的几位的值保留:00111100则保留中间四位的值:00101100&

“按位或”运算符|规则:0|0=00|1=11|0=11|1=1例如:060|017=?001100000000111100111111|结果:

060|017=077“按位或”的用途把一个数的若干位置1。如:00101000把最后一位置为10000000100101001|“按位异或”运算符^规则:0^0=00^1=11^0=11^1=0含义:判断两位值是否为“异”,为异则为真。例如:071^052=?001110010010101000010011^

结果:071^052=023“按位异或”的用途^运算可使特定的位翻转:011110100000111101110101不使用中间变量,两变量值交换。a=7(00000111),b=9(00001001)a=a^b;/*000001110000100100001110*/b=b^a;/*000010010000111000000111*/a=a^b;(00001001)

^

取反~规则:~1=0~0=1例如:~025=?~0000000000010101=1111111111101010(0177752)=-22左移运算<<把一个数按二进制位全部左移若干位。例如:5<<2=?0000000000000101<<2为0000000000010100为20规则:左移一位(没有溢出)相当于乘2如果左移时高位含1,上述规则不成立。例如

a=64(01000000);a<<1=128;a<<1=0;b=127(01111111);b<<1=254;b<<1=252;b<<1=248;

ex11-01右移>>运算整个数据按二进制数右移若干位,每移一位,低位被舍去。a=15;a>>1=7;00001111>>1相当于00000111每右移一位,相当于整除2。如果是负数,则右移:逻辑右移算术右移:补符号位。(TurboC)ex11-0211.4位段存储信息不必用一个或多个字节,也可以一个字节中存放多个信息。有许多信息可以几个bit表示就够。如:男/女,真/假—一个bit可以工作年限—用6bits可以表示。

思考:N位二进制数可表示的数范围?

为了节省内存,可以用位段。定义以位(bit)为单位来定义长度的结构体成员——位段(位域)。例如:structdata_pack{unsigneda:2;unsignedb:6;unsignedc:4;unsignedd:4;intage;}data;位段的引用和结构体成员引用一样。说明若某一个位段要从另一个字开始,可以插入0长度位段。unsigneda:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论