博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有关异或符号'^'在c++编程中的应用的讲解!!!
阅读量:6154 次
发布时间:2019-06-21

本文共 776 字,大约阅读时间需要 2 分钟。

异或门符号'^',在编程中的使用,有的时候能够让你的程序更加精炼简捷,

尤其在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<iostream>
using namespace std;
int main()
{
 int a=3;
 int b=4;
 a=a^b;
 b=a^b;
 a=a^b;
 cout<<a<<' '<<b<<endl;
 return 0;
}
2在一排数中找到独一无二的一个数
例子如下:
他的思路是;
只要有相同的数那么他们异或后的结果就是0,最后就剩下0和那个独一无二的数相异或,就等于
那个独一无二的数了!!哈哈!!例子,如下:
#include<iostream>
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");

 

 

转载地址:http://lzbfa.baihongyu.com/

你可能感兴趣的文章
bzoj 3223: Tyvj 1729 文艺平衡树
查看>>
MySQL高级 之 order by、group by 优化
查看>>
JavaScript学习笔记(三)
查看>>
PyQt4学习笔记2:事件和信号
查看>>
windows系统实现mysql数据库数据库主从复制
查看>>
elasticsearch5.0.1集群排错的几个思路总结
查看>>
Linux 平台设备驱动模型
查看>>
前端学习之jquery
查看>>
RedHat6.2搭建FTP服务器
查看>>
DataTable学习笔记
查看>>
this指向问题
查看>>
原生查找DOM的方法
查看>>
Global variables vs. Host variables vs. Parameter markers
查看>>
百度电影推荐系统比赛 小结 ——记我的初步推荐算法实践
查看>>
HDU2033 人见人爱A+B
查看>>
天龙八部中的诗词
查看>>
jQuery CSS 添加/删除类名
查看>>
js_总结数据类型在内存中的存储
查看>>
转:JS中生成和解析JSON
查看>>
VMware虚拟机的三种连接方式
查看>>