异或详解

网友投稿 942 2022-08-24

异或详解

异或门符号'^',在编程中的使用,有的时候能够让你的程序更加精炼简捷, 尤其在C++的acm程序应用中,可以避免许多麻烦!!!它的几个简单作用 讲解如下: 它的简单规则是相同为0,不同为1,例如 int a=3=011(2进制,在计算机中的存储形式); int b=6=110(2进制,在计算机中的存储形式); int c=a^b=101=5; 切忌,在异或门的计算中都是应用的2进制!! 任何数和0异或都等于它本身;两个相同的数异或后的结果是0;

1)实现两个数的交换

a=a^b;    b=a^b;//b=a^b^b=a^0=a;    a=a^b;//a=a^a^b=0^b=b;

应用例子如下:

#include using namespace std; int main() { int a=3; int b=4; a=a^b; b=a^b; a=a^b; cout<

2.在一排数中找到独一无二的一个数

例子如下: 他的思路是; 只要有相同的数那么他们异或后的结果就是0,最后就剩下0和那个独一无二的数相异或,就等于 那个独一无二的数了!!哈哈!!例子,如下:

#include using namespace std; int main() { int n,i,x,y; while(scanf("%d",&n)!=EOF&&n) { x=0; while(n--) { cin>>y; x^=y; } printf("%d\n",x); } return 0;

} 随便输入几个数,找到其中没有和他相同的那个数!

3)判断两个数是否相等

if(a^b==0) printf("a=b"); else printf("a!=b");

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:尼姆博弈(Nimm Game)
下一篇:HDU 1032 The 3n + 1 problem(暴力)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~