用按位异或来交换数原理是什么?

比如,

int x=7,y=8;
x=x^y;
y=x^y;
x=x^y;
结果x=8,y=7;

那么,你写的例子就是利用异或的方法将两个数交换,就如同:

int x=7,y=8;
x=x+y;
y=x-y;
x=x-y;

它们的道理一样,你不妨仔细体会一下!

好,接下来进入正题....

实际原理就是数字A异或B两次,就得到A。而B被A异或两次,就得到B。

int x = 7;
int y = 8;
x = x^y; //x被y异或一次
y = x^y; //此时x存放的是x与y的异或,因此相当于被y又异或一次,x被y异或两次,得到x并赋给y
x = x^y; //此时x存放的是x与y的异或,而y存放的就是x的值,因此再异或一次y就相当于异或x一次就得到x

【异或交换原理】按位进行异或操作,实现数的交换相关推荐

  1. c语言异或实现交换原理,使用异或运算符实现两个数交换原理

    使用异或运算符实现两个数交换原理 子不语 • 2019 年 12 月 21 日 使用异或运算符实现两个数交换原理 可以使用异或运算符实现两个数交换#include using namespace st ...

  2. 常见位操作及运算应用举例:1,C语言中位运算符异或“∧”的作用​​​​​​​2,异或运算的作用3,(与运算)、|(或运算)、^(异或运算)

    1 C语言中位运算符异或"∧"的作用: 异或运算符∧也称XOR运算符.它的规则是若参加运算的两个二进位同号,则结果为0(假):异号则为1(真).即0∧0=0,0∧1=1,1∧1=0 ...

  3. 003-位运算异或“∧”使特定bit位翻转

    位运算异或"∧"使特定bit位翻转 1.概念 2.应用 2.1 使特定位翻转 2.2 实现两个值的交换 1.概念 异或运算符"∧"也称XOR运算符.它的规则是若 ...

  4. c语言怎么将两个整数变量值交换,C语言如何利用异或进行两个值的交换详解

    C语言异或运算 位运算符家族中,最常用的,某过于异或运算符. 异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例 ...

  5. 一文搞懂 位运算 异或(Java实现)

    提起异或想必很多小伙伴们既熟悉又陌生,熟悉是因为好像在离散数学或者学某个编程语言 时听过这个东西,而陌生呢,则是因为自己平时并没有用过,以至于当在某个场景 (我猜是在看 题解或者某篇博客时)  看到这 ...

  6. C语言中位运算异或“∧”的作用

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 1.概念 异或运算符"∧"也称XOR运算符.它的规则是 ...

  7. BCC校验(异或校验)原理

    BCC校验(异或校验)原理 BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验.具体算法是:将每一个字节的数据(一般是每两个16进制的字符 ...

  8. 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作...

    XOR 指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存放在目标操作数中: XOR destination, source XOR 指令操作数组合和大小与 AND 指令及 O ...

  9. 位运算--异或运算XOR

    c++编程中的基础数学问题 02位运算–异或 今天分享一下在编程当中尤其是在数学部分非常重要的一个部分支–位运算.别看位运算就那么几个简单的运算符号,如果能好好利用就能特定的问题中大放异彩. 这里我们 ...

最新文章

  1. Unity3d游戏开发之漫游场景的制作
  2. AgileEAS.NET平台开发指南-实现插件
  3. 实现任意行数的杨辉三角
  4. 【JUC】第五章 JUC 阻塞队列、线程池
  5. 3299元!最便宜的5G手机明日开启预售
  6. CCF CSP202112-2 序列查询新解
  7. php 字符串偏移量,注意:PHP中未初始化的字符串偏移量
  8. 无线路由登不上服务器怎么办,192.168 2.1路由器登陆不了怎么办
  9. 输入上下文句柄相关函数 linux,一起聊聊WSL的那些事儿(上)
  10. Makefile 自动化变量及其说明
  11. 关于微信开发者平台移动应用(android)获取签名问题
  12. 算法的时间复杂度和空间复杂度总结
  13. 2022-2027年中国奶牛养殖行业市场深度分析及投资战略规划报告
  14. 背了单词再也不怕忘,多邻国的AI要逆天!
  15. 和python高级知识分子的风骨_侯伯宇 一个高级知识分子的风骨
  16. WIN7计算机管理里没有便携设备,如何显示及删除Win7设备管理器中隐藏的已用过的硬件设备信息(图)...
  17. java条码识别技术_Java 生成、识别条形码
  18. 新型的领导者是一名推动者,而不是一名发号施令者
  19. Python pip 安装、使用与升级
  20. 关于解决HbuilderX终端不能输入问题

热门文章

  1. 报名丨“眼界大开 声临其境”网易首届音视频技术大会倒计时!
  2. 专访 | 执拗、纯粹的网易阮良,和他的梦想团队
  3. WKWebView-填坑总结
  4. apache phoenix 安装试用
  5. jQuery图片提示和文字提示
  6. 编译过程中,termcap.h 文件找不到路径 licli.a终于生成
  7. Linux中基于snmp协议的mrtg安装及使用
  8. 项目案例分享四:DC升级后Sysvol停止复制,日志报13508
  9. CSS3菜单栏透明兼容问题
  10. Nagios监控Windows主机