1 关于&& ,||
因为&& 和 || 运算符 都具有短路线。所以运算符后面
int a = 0 ;
0&& a++ ; //a的结果还是 0 ,因为前面已经是0 ,所以后面就不需要判断了,
1 || a++ ; // a的结果还是 0 ,因为前面已经是 1,所以后面就不需判断了,
int a=0;
int i = 1 && ++a;
printf("%d\n",a); //1
printf("%d\n",i); // 1
int i = 1 && a++; // i =0;
这就说明++的运算符优先级比 && 高
2 按位与(&),按位或(|),按位异或(^);
&的运算规则是 1& 1 ;// 1 ; 1& 0 ;// 0 ; 0& 0 ;// 0 ;
| 的运算规则是 1 | 1 ; // 1 ; 1 | 0 ; // 1 ; 0| 0 ; // 0 ;
^ 的运算规则是 1^1 // 0 ; 1^0 ;// 1 ; 0 ^ 0 ;// 0 ; 按位异或的运算规则是相同为0 ,否则为 1
各运算符的特殊作用:
<1> & 运算
1 > 把一个数设置为0
2> 提取某些数位。比如高八位和低八位
<2 > | 运算
将一个数置一,或者这个数的某些位置的数置1
<3 > 异或运算
可以将两个变量中的数交换。
3 ~ 按按位取反
把一个数字的每个数都变成相反的数。