第12讲 位运算

第12讲 位运算

ID:42371128

大小:198.00 KB

页数:21页

时间:2019-09-13

第12讲 位运算_第1页
第12讲 位运算_第2页
第12讲 位运算_第3页
第12讲 位运算_第4页
第12讲 位运算_第5页
资源描述:

《第12讲 位运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、全国计算机等级考试3C课程第11讲位运算位运算符也可以与赋值符一起组成复合赋值符。如:&=、

2、=、^=、>>=、<<=说明:位运算符中除~以外,均为双目运算符。运算量只能是整型或字符型的数据,不能为实型数据。位运算的概念前面我们所学的各种运算,都是以字节作为基本单位进行的。所谓位运算,就是以二进制位为基本单位进行的运算C语言提供了6种位运算符:运算符含义运算符含义&与~取反

3、或<<左移∧异或>>右移7/18/20212作者:张旭仟版权所有欢迎盗版按位与运算:&运算规则:参加运算的两个数据,按二进制位进行“与”运算。如果两个相

4、应的二进制位都为1,则该位的结果值为1;否则为0。即:0&0=0,0&1=0,1&0=0,1&1=1注意:参加位运算的运算量必须都是整形或字符型数据;如果参加&运算的是负数,则首先要以补码形式表示为二进制数,然后再按相应规则进行运算。例:3&500000011(3)&00000101(5)00000001(1)7/18/20213作者:张旭仟版权所有欢迎盗版按位与运算:&按位与的常用功能-清零若想对一个存储单元置零,只要用一个全0的二进制数与其进行&运算,即可达到清零目的。例:若原存储单元的数为00101011,若要将其全部

5、置为0,只需将其与二进制数00000000进行&运算即可。00101011&00000000000000007/18/20214作者:张旭仟版权所有欢迎盗版按位与运算:&按位与的常用功能-取一个数中的特定位:若只想对一个二进制数的某些位置零,其他位保持不变,只需将找一个数(对应于要置0的位全部为0,对应于要保持不变的位全部为1),然后做按位与运算即可。0010110010101100abc00000000111111110000000010101100例:有16位的二进制数0010110010101100,要求将高8位全部置

6、0,低8位保持不变,只需将其与二进制数0000000011111111进行&运算即可。7/18/20215作者:张旭仟版权所有欢迎盗版按位与运算:&例如,要把变量a的高八位清0,保留低八位。只需作如下运算:a&255(0000000011111111)#includemain(){inta;scanf("%d",&a);printf("Befor:%d",a);a=a&255;printf("After:%d",a);}运算结果:65535Befor:65535 After:2557/18/202

7、16作者:张旭仟版权所有欢迎盗版按位或运算:

8、运算规则:只要对应的二个二进位有一个为1时,结果位就为1。即0

9、0=0,0

10、1=1,1

11、0=1,1

12、1=1例:060

13、017。00110000

14、00001111001111117/18/20217作者:张旭仟版权所有欢迎盗版按位或运算:

15、按位或的用途:按位或运算常用来对一个数据的某些位定值为1。例如:如果想使一个数a的低4位改为1,只需将a与017(1111)进行按位或运算即可。例:a是一个短整形数据(16位),有表达式:a

16、0377则将低8位全置为1,高8位原样保留。说明:其中

17、0377是8进制数,其二进制是111111117/18/20218作者:张旭仟版权所有欢迎盗版按位或运算:

18、例程#includemain(){inta=9,b=5,c;c=a

19、b;printf("a=%db=%dc=%d",a,b,c);}运算结果:a=9 b=5 c=137/18/20219作者:张旭仟版权所有欢迎盗版按位异或运算:^运算规则:当两对应的二进位相异时,结果为1,反之为0。即:0^0=0,0^1=1,1^0=1,1^1=0例:071^052=023(八进制数)00111001∧0

20、0101010000100117/18/202110作者:张旭仟版权所有欢迎盗版按位异或运算:^^运算符的应用^运算可以使特定位翻转。设有01111010,想使其低4位翻转,即1变为0,0变为1。可以将它与00001111进行^运算,即:01111010∧0000111101110101运算结果:低4位正好是原数低4位的翻转。可见,要使哪几位翻转就将与其进行∧运算的该几位置为1即可。7/18/202111作者:张旭仟版权所有欢迎盗版按位异或运算:^例程#includemain(){inta=9;a=a^5;

21、printf("a=%d",a);}运算结果:a=157/18/202112作者:张旭仟版权所有欢迎盗版按位非(求反)运算:~功能:对参与运算的数的各二进位按位求反,即将0变1,将1变0。例如,~025是对八进制数25(即二进制数00010101)按位求反。00000000000101

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。