第11章+位运算.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第11章+位运算.ppt》由会员分享,可在线阅读,更多相关《第11章+位运算.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1111章章 位运算位运算11.1 位运算符11.2 位段11.3应用举例11.1 位运算符当两个运算对象的位数不同时,系统将自动进行如下处理:v先将两个运算数右端对齐。v 再将位数不足的一个运算对象向高位扩充,即:无符号数和正整数左端用0补齐;负数左端用1补齐;然后对位数相等的这两个数按位进行运算。q“按位与按位与”运算(运算(&)v“按位与”运算是将参加运算的两操作对象,按对应的二进制位分别进行“逻辑与”运算。v运算规则为:只有两个相应位都为1时,该位的运算结果才为1;两个相应位的值相异或均为0时,该位的运算结果为0。11.1 位运算符【例11.1】求表达式12&10的值。main()
2、char x=12,y=10;printf(“%d,%dn”,x,y);x=x&y;printf(“%d,%dn”,x,y);输出结果为:12,108,1011.1 位运算符v按位与运算用途:清零:若想将某个存储单元清零,只需将这个存储单元的值与零进行“与”运算。【例11.2】分析下面程序结果main()char ch=46;printf(%d n,ch);ch=ch&0;printf(%d n,ch);输出结果为:46 011.1 位运算符获取指定位:如果要想获取某数据X的指定位,则可以用一个数与X进行“与”运算,此数在与指定位相同的位上的值为1,其余各位为0。【例11.3】从键盘输入一个整
3、数,判断此数是否能被2整除。#includemain()int x;printf(Please input a number:);scanf(%d,&x);if(x&0 x01)=0)/*通过与运算,只保留该数的最低位,然后判断其是否为0*/printf(n%d can be divided by 2 exactly!,x);/*最低位为0,该数能被2整除*/else printf(n%d cant be divided by 2 exactly!,x);/*最低位为1,不能被2整除*/11.1 位运算符q“按位或按位或”运算(运算(|)v按位或运算是将参加运算的两操作对象,按对应的二进制位分
4、别进行“逻辑或”运算。v运算规则为:只有两个相应位都为0时,该位的运算结果才为0,其它情况下,结果全为1。【例11.4】求表达式12|10的值。main()char x=12,y=10;printf(“%d,%dn”,x,y);x=x|y;printf(“%d,%dn”,x,y);输出结果为:12,1014,1011.1 位运算符v用途:按位“或”经常用来对一个数据的某些位置1。【例11.5】把整数x(8位)的低4位置1,高4位不变。main()char x=67;printf(“%dn”,x);x=x|15;printf(“%dn”,x);输出结果为:677911.1 位运算符q“按位异或按
5、位异或”运算(运算()v按位或运算是将参加运算的两操作对象,按对应的二进制位分别进行“按位异或”运算。v运算规则为“按位异或”的应用:参加运算的两个运算量,如果两个相对应位上的值不同,则该位的结果为1;如果对应位上的值相同,则该位的结果为0。v“按位异或”的应用 使特定位翻转,即使指定的位求反。【例11.6】设x=46,将其高4位保留原样,低4位各位求反。main()char x=46;printf(“%dn”,x);x=x15;printf(“%dn”,x);11.1 位运算符输出结果为:4633对变量置零。每一个数与它自身进行“异或”运算,结果各位均为零。即:xx=0。【例11.7】不用临
6、时变量,交换两个变量的值。main()char x=12,y=10;printf(“%d,%dn”,x,y);x=xy;y=yx;x=xy;printf(“%d,%dn”,x,y);输出结果为:12,1010,1211.1 位运算符q“按位取反按位取反”运算(运算()“按位取反”运算符“”是唯一的一个单目位运算符,用来将一个二进制数按位取反,即将1变0,将0变1。【例11.8】给出一个数的原码,求出该数的补码。main()unsigned int a;/*声明一个无符号的整数a*/unsigned int getbits(unsigned);/*函数声明*/printf(nInput an o
7、ctal number:);scanf(%o,&a);/*以八进制形式输入一个无符号的整数*/printf(result:%o,getbits(a);/*以八进制形式输出*/11.1 位运算符unsigned int getbits(unsigned value)/*求一个二进制数的补码*/unsigned int z;z=value&10000000;if(z=10000000)z=value+1;/*对负数求其补码*/else z=value;/*正数不变*/return(z);运行情况如下:Input an octal number:2345result:2345再次运行:Input a
8、n octal number:1252525result:525311.1 位运算符q“左移左移”运算(运算()v左移运算符“”是双目运算符,左移运算的一般形式为:运算对象运算对象左移位数左移位数v作用:将一个数的各二进制位依次左移若干位(由左移位数给出),左移时,右端(低位)补0,左端(高位)移出的部分舍去。【例11.9】输入两个1位十进制数字符a和b,由a、b组合生成整数c(c用字符类型表示),并显示出来。生成规则是:a的低4位作为c的高4位,b的低4位作为c的低4位。屏蔽掉a,b的高4位;a左移4位,使a的低4位成为高4位;将a和b拼在一起,形成c。11.1 位运算符main()char
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 运算
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内