《第12章位运算.ppt》由会员分享,可在线阅读,更多相关《第12章位运算.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十二章 位运算n位运算符和位运算n位运算举例n位段第一节 位运算符和位运算六种位运算符&按位与|按位或 按位异或 取反 右移第一节 位运算符和位运算说明:位运算符中除以外,均为二目(元)运算符,即要求两侧各有一个运算量运算量只能是整型或字符型的数据,不能为实型数据第一节 位运算符和位运算一、按位与运算只有参与运算的两个二进位均为1时,结果位才为1,否则为0,参与运算的数以补码方式出现0&0=00&1=01&0=01&1=1第一节 位运算符和位运算例如:9&5可写算式如下:00001001(9的二进制补码)&00000101(5的二进制补码)00000001(1的二进制补码)第一节 位运算符和
2、位运算特殊用途:1.清零找一个二进制数使其所有原来的数中为1的位都为0即可,然后作&运算例如:&1001010000000000 00101011 第一节 位运算符和位运算2.取一个数中的某些指定位找一个二进制数使其所有原来的数中要保留的位为1,其他位为0即可例如:00101101&0000111100001101第一节 位运算符和位运算3.要保留哪一位就与一个只有在该位取1的二进制数作&例如:01001011&00001000(保留第4位)00001000第一节 位运算符和位运算二、按位或运算只要参与运算的二个二进位有一个为1时,结果位就为1,参与运算的两个数均以补码出现0|0=00|1=1
3、1|0=11|1=1第一节 位运算符和位运算例如:9|5可写算式如下:00001001|00000101 00001101(十进制为13)第一节 位运算符和位运算三、按位异或运算参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1,参与运算数仍以补码出现相同为0,不同为100=001=110=111=0第一节 位运算符和位运算例如:95可写成算式如下:00001001 00000101 00001100(十进制为12)第一节 位运算符和位运算特殊用途:1.使特定位翻转例如:011110100000111101110101(低4位翻转)第一节 位运算符和位运算2.与0相,保留原值
4、例如:01200=012000010100000000000001010第一节 位运算符和位运算2.交换两个值,不用临时变量使用如下语句:a=ab;b=ba;a=ab;第一节 位运算符和位运算四、取反运算对参与运算的数的各二进位按位求反例如:0010101111010100注意:的运算优先级比其他的都高第一节 位运算符和位运算五、左移运算把“”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补0 第一节 位运算符和位运算例如:a=00000011(十进制3)a”左边的运算数的各二进位全部右移若干位,“”右边的数指定移动的位数,对于有符号数,在右移时,符号位将随
5、同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1 第一节 位运算符和位运算例如:a=000001111(十进制15)a2a=00000011(十进制3)第二节 位运算举例取一个整数a从右端开始的47位main()unsigned a,b,c,d;scanf(“%o”,&a);b=aa;c=(0=,=等n利用位运算可以完成汇编语言的某些功能,如置位,位清零,移位等。还可进行数据的压缩存储和并行运算小结n位域在本质上也是结构类型,不过它的成员按二进制位分配内存。其定义、说明及使用的方式都与结构相同n位域提供了一种手段,使得可在高级语言中实现数据的压缩,节省了存储空间,同时也提高了程序的效率