C语言知识归纳笔记

知识点一:&&&||| 用法区分

&是位与&&是逻辑与¦是位或¦¦是逻辑或

 &| 称为布尔运算符,&&|| 称为条件布尔运算符

1.&的取值/清零(保留值/清零)用法:

&可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4bit位,例如,0x31 & 0x0f的结果为0x01。含f的保留,含0即清除;

例如:a &= ~(0x01 <<3) //清除abit3即将第3位设置为0

2.&&判断条件用法:

&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。例如,ifi!=1&&j!=1break; 即如果i或者j不等于1就跳出程序,同时满足就不执行break

3.|的用法:

11,全00 例如:0|1=1 0|0=0

 例如:a |= (0x01 << 3) //设置abit3即将第3位设置为1

4.||判断条件用法:

如果第一个操作数是true||运算符就返回true,无需考虑第二个操作数的值。

5.用作算法:

效率最高的算法
 a=b*2  ---> a=b<<1; //左乘右除 移一位2,移两位4,移38
 a=b/4  ---> a=b>>2;
 a=b%8 ----> a=b&7;
 a=b/8*8+b%4 -----> a=((b>>3)<<3)+(b&3)
 a=b*15 ------> a=(b<<4)-b

 

posted @ 2020-10-14 14:43  潘潘-Devil  阅读(136)  评论(0编辑  收藏  举报