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

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

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

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

特点:一真则真

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

360笔试题

第一题:

#include
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


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;
}

思考:答案是什么?

操作符 & , | , ^, &&, || 用法总结_第1张图片
第一题答案:

操作符 & , | , ^, &&, || 用法总结_第2张图片
第二题答案:

你可能感兴趣的:(学习所得)