为了让小白们更加轻松融入C语言的学习当中,我也是熬夜加班将这三个令我抓狂的双目操作符总结出来。
相信大部分人对于取地址符’&’并不陌生,用来获取变量a的内存地址。为了便于在后续代码中使用变量的地址来进行间接访问。
’&&’是逻辑运算符,表示逻辑与;相当于生活中说的“并且”,就是两个条件都成立的情况下“逻辑与”的运算结果才为“真”。
重点来了,看到这个是不是很懵逼,
’&’:按(二进制)位与
通俗来说就是&两边按二进制计算;对应位都为1时等于1否则为0,由此计算出c的二进制为001转化为十进制为1。
’||’是逻辑运算符,表示逻辑或;相当于生活中说的“或者”,就是两个条件任意一个成立“逻辑或”的运算结果才为“真”。
’|’:按(二进制)位或
与‘&’相反‘|’对应位都为0时等于0否则为1,由此计算出c的二进制为111转化为十进制为7。
’^’:按(二进制)位异或![](https://i-blog.csdnimg.cn/blog_migrate/921b8c51df5ca5db5fefa5d0f499d447.png)
对应位都相等时等于0否则为1,由此计算出c的二进制为110转化为十进制为6。
不创建第三个变量交换a,b的值
#include<stdio.h>
int main()//不创建第三个变量交换a,b
{
int a = 20;
int b = 30;
printf("a=%d b=%d\n", a, b);
a = a ^ b;
b = a ^ b;//a^b^b=a b=a
a = a ^ b;//a^a^b=b a=b
printf("a=%d b=%d", a, b);
return 0;
}