博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异或运算的作用
阅读量:6916 次
发布时间:2019-06-27

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

1、异或运算

  异或,英文为exclusive OR,或缩写成xor。
  异或( )是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)。
  如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

2、异或运算符号

  在C和C++中,异或运算不使用xor表示,而是使用“^”符号,比如计算a和b的异或结果表达式为:a ^ b。

3、异或运算的应用

  异或预算满足交换律,如:

   a ^ b ^ c = a ^ c ^ b

  巧妙的应用异或运算的交换律能给一些算法带来很大的便利。如:快速求出一个字符串中只出现一次的字符(其他字符串都出现两次),则可将该字符串中的字符依次求异或,最后的结果就是只出现一次的那个字符(注:结果的初始值必须为0)。代码如下:

char findSingleChar(string s){    char ch = 0;    for(char item : s)          ch ^= item;    return ch;}

  另外也可以通过异或实现两个变量交换。代码如下:

void swap(int &a, int &b){    a = a ^ b;    b = b ^ a;    a = a ^ b;}
a1 = a ^ bb = b ^ a1 = b ^ a ^ b = a  //此时a1 = a ^ b, b = aa = a1 ^ b = a ^ b ^ a = b

  这样就完成了a、b变量的交换。

转载于:https://www.cnblogs.com/jasonchan1202/p/7844843.html

你可能感兴趣的文章
纽曼纽扣偷袭奇酷青春,YunOS与360OS会不会发生点什么
查看>>
C#学习常用方法(4000)---Activator.CreateInstance方法
查看>>
Unity5.0 EventSystem事件系统的详细说明
查看>>
运维采集技术分享: 通过WMI监控NAT后的Windows系统
查看>>
MFC_定时器
查看>>
Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
查看>>
Ubuntu 编译ffmpeg 实现GPU 转码
查看>>
跟小博老师一起学习数据库 ——delete
查看>>
C++ 关于指针和数组,new的一些补充
查看>>
计算CPU 百分比 - 基于openstack kvm 虚拟机采集片段代码分享
查看>>
我的友情链接
查看>>
CAD设计你需要以下几款开源工具
查看>>
如何提高百度文库的通过率
查看>>
周珍:浮躁的互联网,造就了坚韧的SEO
查看>>
mysql在linux上导数据库
查看>>
排错-升级Exchange 2013 CU22后程序名称显示异常
查看>>
数据同步备份简单脚本
查看>>
初入IT
查看>>
Webpack4干货分享(二),使用loader处理scss,图片以及转换JS
查看>>
LAMP自动安装脚本第三版
查看>>