操作符 & , | , ^, &&, || 用法总结

xiaoxiao2022-06-11  45

操作符 & , | , ^, &&, ||

1.位操作符:& , |, ^

(1).& —————— /* 按bit位与*/
运算方式:按照所给数二进制位进行计算。既对应位进行与运算,然后将结果转换成十进制结果输出

例如:char a=1; char b=2;求a&b的值 a=1 既//0000 0001 b=2 既 //0000 0010 结果为 //0000 0000 则 a & b 的结果为0

特点 :相同为1,相异为0。

#include<stdio.h> int main() { int a=5; //0101 int b=6; //0110 int c=a & b; //0100---> 4 printf("%d\n",c); return 0; }
(2). | —————— /* 按位或*/

运算方式:按照所给数二进制位进行计算。既用对应位进行或运算,然后将结果转换成十进制结果输出

特点:一真则真。

#include<stdio.h> int main() { int a=5; //0101 int b=6; //0110 int c=a | b; //0111---> 7 printf("%d\n",c); return 0; }
(3). ^ —————— /* 按位异或*/

特点:相同为0,相异为1;

#include<stdio.h> int main() { int a=5; //0101 int b=6; //0110 int c=a ^ b; //0011---> 3 printf("%d\n",c); return 0; }

2.逻辑操作符:&& ,||

(1)&& —————— /* 逻辑与*/

特点:两个操作数同时为真才为真。

#include<stdio.h> int main() { int a=0; int b=1; int c=2; int d=a && b&&c; //结果为假 /* 此时a为假,不用再计算后面的表达式,此表达式逻辑为假*/ int e=b&&c;//为真 printf("%d\n",d); printf("%d\n",e); return 0; }
(2) || —————— /* 逻辑或*/

特点:一真则真,两个操作数同时为假才为假。

#include<stdio.h> int main() { int a=1; int b=2; int c=a || b; //结果为真 /* 此时a为真,所以不会再计算 || 后面的语句,此表达式逻辑为真*/ printf("%d\n",c); return 0; }

360笔试题

第一题:

#include<stdio.h> int main() { int i=0,a=0,b=2,c=3,d=4; i=a++ && ++b && d++; //此处的a还是0,原因是++为后置++,既该语句结束后才++; /* 此时a为假,所以不会再计算 &&后面的语句,此表达式逻辑为假*/ printf(" a=%d\n b=%d\n c=%d\n d=%d\n i=%d\n",a,b,c,d,i); return 0; }

思考:答案是什么?

第二题:

#include<stdio.h> int main() { int i=0,a=0,b=2,c=3,d=4; i=a++ || ++b || d++; /* 此时b为真,所以不会再计算 || 后面的语句,此表达式逻辑为真*/ printf(" a=%d\n b=%d\n c=%d\n d=%d\n i=%d\n",a,b,c,d,i); return 0; }

思考:答案是什么?

第一题答案:

第二题答案:

转载请注明原文地址: https://www.6miu.com/read-4931430.html

最新回复(0)