讲讲异或 #良心超明白介绍 #记住我 #没错,又是我搞事情

异或

傻逼 博主在刚学的时候,看到别人的代码一堆异或
死的和任何一位萌新一样
而且,耂是背了忘,忘了背,背了又忘
所以,想写篇博客,骗点赞 加深印象

异或:
符号:
⊕ , xor , ^ , eor ,ex-or 都指异或
概念:
一种二进制的位运算
针对一个数转化成二进制后的数的 每一位 进行 运算
法则:
这是一个全靠背(博主感觉)的东西
0^0=0
1^1=0
1^0=1
0^1=1

就是相同为假,不同为真
几个特点和功能:
1. 0异或任何数=任何数本身
2. 1异或任何数=任何数取反(针对每一二进制位取反)这一点博主在某些大佬的程序中看懵了好几次,现在自己也喜欢这样写,让某些 陈琦(my gay friend) 刚学的孩子 看不懂
3. 任何数异或她自己=把她自己变成0
4. 使一个数某些特定的位翻转
  例如对二进制数 11001 的第2位和第3位翻转,我们则可以将这个数与 00110 进行按位异或运算
  11001^00110=11111
  这很重要:一个数与另一个数进行位运算时,不足的位 补零 上去
5. 交换两个值,而不是用临时变量
这可以用来让陈琦看不懂
代码:cpp
交换 A B

void change(int& a,int& b)
{
	a=a^b;
	b=b^a;
	a=a^b;
 } 
  1. 似乎上面数字没对齐
    没事,我就是来坑强迫症的
    判断两个数是否相等,但是这种较快,较装B
    代码:cpp
bool check(int a,int b)
{
	return ((a^b==0));
}
//return 1:相等
//return 0:不等 

好了 ,介绍完了,可以点个赞吗
 谢谢阅读
 #点赞是我写BUG的动力!!!

你可能感兴趣的:(初赛知识,毛大帅逼的cpp爆零生涯,c++)