C语言基础自学总结七位运算

上传人:re****.1 文档编号:510547594 上传时间:2023-01-14 格式:DOCX 页数:4 大小:14.17KB
返回 下载 相关 举报
C语言基础自学总结七位运算_第1页
第1页 / 共4页
C语言基础自学总结七位运算_第2页
第2页 / 共4页
C语言基础自学总结七位运算_第3页
第3页 / 共4页
C语言基础自学总结七位运算_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言基础自学总结七位运算》由会员分享,可在线阅读,更多相关《C语言基础自学总结七位运算(4页珍藏版)》请在金锄头文库上搜索。

1、C语言基础自学总结之七:位运算概念:意思是:位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。针对一个变量的某一位操作就称之位,位操作。一.位运算符要点:1. &:按为与2. |:按位或3. :按位异或4. :按位取反5. :右移1. &: 按位与例子1:#include int main(void) printf(%dn,5&3);/5按

2、位与3,是1,就是每一位进行相与,与运算:与上0还是0,1与上1为1,0与上1为0,用的是补码相与, printf(%dn,5&-3);/是补码的相与 return 0;2. :按位或例子1:#include int main(void) printf(%dn,5|3);/或运算就是对数字的每一个进行或运算,或运算:每一位只要有一个1就是1,都是0时才为0,同样是补码运算。 return 0;3. :按位异或例子1:#include int main(void) printf(%dn,53);/异或每一位进行异或,相同为假,不同为真。还是补码进行异或,return 0;4. : 按位取反例子1

3、:#include int main(void) printf(%dn,53);/进行每一位取反,还是补码取反 return 0;5. :左移例子1:#include int main(void) printf(%dn,51);/就是把”前面数字“每一位向左边移“ :右移例子1:#include int main(void) printf(%dn,51);/右移的方式移左移一样,超出范围的舍去,不够的正数补0,负数补1,正数右移n位相当于除以2的n次方,但是在不同的系统下,结果不一样。 return 0;二. 位操作要点:1、如果相求a的第n位(从0位起)是1还是0,就用a与上1左移n位,如果

4、等于1第那位就上1,若果等0第n位就是0,a&=1n,2.如果想把a的第n位(从0位起)变成1,就用a或上1左移n位,a1n。3.如果想将a的第n位(从0位起)变成0,就用a与上1左移n位取反,a&(1n)。4.如果想将a的第n位(从0为起)取反,就用a异或上1左移n位,a=1n.例子1:#include int main(void) int a=1; a|=12;/把a的第2位变成1 printf(%dn,a); a&=(12);/把a的第2位变成0 printf(%dn,a); a=a2;/把a的第2位取反 printf(%dn,a); if (a&=a2) printf(a的第二位是1); else printf(a的第二位是0); /判断a的第二位是1还是0 return 0; / 文档可自由编辑打印

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号