第12章位运算



《第12章位运算》由会员分享,可在线阅读,更多相关《第12章位运算(31页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第十二章 位运算,位运算符和位运算,位运算举例,位段,第一节 位运算符和位运算,六种位运算符,&按位与,|按位或,按位异或,取反,右移,第一节 位运算符和位运算,说明:,位运算符中除,以外,均为二目(元)运算符,即要求两侧各有一个运算量,运算量只能是整型或字符型的数据,不能为实型数据,第一节 位运算符和位运算,一、,按位与运算,只有参与运算的两个二进位均为1时,结果位才为1,否则为0,参与运算的数以补码方式出现,0&0=00&1=01&0=01&1=1,第一节 位运算符和位运算,例如:,9&5可写算式如下:
2、,00001001(9的二进制补码),&00000101(5的二进制补码),00000001(1,的二进制补码,),第一节 位运算符和位运算,特殊用途:,1.清零,找一个二进制数使其所有原来的数中为1的位都为0即可,然后作&运算,例如:,&10010100,00000000,00101011,第一节 位运算符和位运算,2.取一个数中的某些指定位,找一个二进制数使其所有原来的数中要保留的位为1,其他位为0即可,例如:,00101101,&00001111,00001101,第一节 位运算符和位运算,3.要保留哪一位就与一个只有在该位取1的二进制数作&,例如:,01001011,&00001000
3、(保留第4位),00001000,第一节 位运算符和位运算,二、按位或运算,只要参与运算的二个二进位有一个为,1,时,结果位就为,1,,参与运算的两个数均以补码出现,0|0=00|1=11|0=11|1=1,第一节 位运算符和位运算,例如:,9|5可写算式如下:,00001001,|00000101,00001101(十进制为13),第一节 位运算符和位运算,三、,按位异或运算,参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为,1,,参与运算数仍以补码出现,相同为0,不同为1,00=001=110=111=0,第一节 位运算符和位运算,例如:,95可写成算式如下:,00001
4、001,00000101,00001100(,十进制为,12),第一节 位运算符和位运算,特殊用途:,1.使特定位翻转,例如:,01111010,00001111,01110101(低4位翻转),第一节 位运算符和位运算,2.与0相,保留原值,例如:,01200=012,00001010,00000000,00001010,第一节 位运算符和位运算,2.交换两个值,不用临时变量,使用如下语句:,a=,ab,;,b=,ba,;,a=,ab,;,第一节 位运算符和位运算,四、,取反运算,对参与运算的数的各二进位按位求反,例如:,00101011,11010100,注意:的运算优先级比其他的都高,第
5、一节 位运算符和位运算,五、,左移运算,把,“”,左边的运算数的各二进位全部左移若干位,由,“”,右边的数指定移动的位数,高位丢弃,低位补,0,第一节 位运算符和位运算,例如:,a=,00000011(,十进制,3,),a”,左边的运算数的各二进位全部右移若干位,,“”,右边的数指定移动的位数,,,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补,0,,而为负数时,符号位为,1,,最高位是补,0,或是补,1,取决于编译系统的规定。,Turbo C,和很多系统规定为补,1,第一节 位运算符和位运算,例如:,a=,000001111(,十进制,15,),a,2,a=00000011,(,十进制,3,),第二节 位运算举例,取一个整数,a,从右端开始的47位,main(),unsigned a,b,c,d,;,scanf(“%o”,&a,);,b=aa;,c=(0=,=,等,利用位运算可以完成汇编语言的某些功能,如置位,位清零,移位等。还可进行数据的压缩存储和并行运算,小结,位域在本质上也是,结构类型,,不过它的成员按二进制位分配内存。其定义、说明及使用的方式都与结构相同,位域提供了一种手段,使得可在高级语言中实现数据的压缩,节省了存储空间,同时也提高了程序的效率,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。