1、 通常我们通过设置临时变量来实现两个数的交换,如下:

 void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}

2、还可以通过异或来实现两个不同整数的交换,如下:

 void swap(int &a,int &b){temp=a^b;      //设a为临时变量,存储异或值b=temp^b;      //相当于b=aa=temp^a;      //相当于a=b
}a=a^b^a;//也可以不设置临时变量,因为异或值没有发生变化
b=a^b^b;

原理推导:
   (1)异或的意义:相同的两个数异或得0,不同的两个数异或得1;

(2)异或结论:将两个数异或的结果与其中一个数再异或,可以得到另一个数;

(3)例子:用异或交换两个数

12(001100)^ 34(100010)=101110(结果)
             101110(结果) ^ 001100(12)=100010(34)

101100(结果) ^ 100010(34)=001100(12)

3、还可以通过加减实现两个数的交换,前提是两个数的和不溢出,如下:

a = a + b;
b = a - b;
a = a - b;

实现两个数的交换(异或,加减)相关推荐

  1. 【C/C++】异或操作巧妙实现两个数的交换操作

    今天在看OpenGL加载TGA格式图像用作纹理的代码时,看到关于RGB(A)顺序转换的一行代码时,捉一开始感到很困惑,后来想了想,就是实现交换操作. 原始代码: texture->imageDa ...

  2. 实现两个数交换python_编写一个程序,用于实现两个数的交换。_学小易找答案

    [判断题]定喘穴定位在胸部 (10.0分) [其它]实现实心等腰三角形图案打印输出. [其它]编写一个程序,用于实现两个数的交换. [其它]实现空心等腰三角形图案打印输出. [判断题]表寒肺热证的代表 ...

  3. 用指针和函数的方法完成两个数的交换

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容6]用指针和函数的方法完成两个数的交换 传递规则:主函数 ...

  4. 【c语言】输入两个数,交换这两个数后,再输出

    <程序设计基础实训指导教程-c语言>杨莉 龚义建 科学出版社 ISBN 978-7-03-032846-5 p9 2.1.2 上机实训内容 [实训内容3] 编程实现:输入两个数,交换这两个 ...

  5. 指针,指针:分装一个函数,实现两个数的交换。 指向固定的区域

    1.指针的引入 //第9行,取值运算符*,他把后面跟的内存地址中的数据"取出来": 2.指针变量的引入 什么是指针变量:存放地址的变量 什么是指针变量:存放指针的变量 指针 = 地 ...

  6. 数组中两个数的最大异或值 两数异或值一定小于两数相加和

    链接:数组中两个数的最大异或值 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n . 进阶:你可以在 O(n) 的时间 ...

  7. arrays中copyof复制两个数组_异或的魅力!图解「数组中两个数的最大异或值」

    今天分享的题目来源于 LeetCode 第 421 号问题:数组中两个数的最大异或值.在 异或 这个知识点里面属于一个中高难度的题目. 题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, ...

  8. LeetCode 421. 数组中两个数的最大异或值

    421. 数组中两个数的最大异或值 Idea 假设选择了数组中的元素ai和aj使得它们达到最大按位异或结果x:x=ai⊕ajx=a_{i}⊕a_{j}x=ai​⊕aj​,其中⊕表示按位异或运算. 根据 ...

  9. 421. 数组中两个数的最大异或值

    题目:421. 数组中两个数的最大异或值 题解:https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/solu ...

最新文章

  1. 基于图的异常检测(三):GraphRAD
  2. 单元测试Struts2的Action(包含源码)
  3. HDU - 4858 项目管理
  4. 检索数据_10_通过多条件组合返回数据
  5. 提升代码可读性的 10 个技巧
  6. 学习笔记之-------UIScrollView 基本用法 代理使用
  7. [css] 为什么说css的选择器一般不要超过三级?
  8. Linux Shell脚本专栏_自动发布Java项目(tomcat)_10
  9. mysql 5.6.15安装图解_Windows8下mysql 5.6.15 安装配置方法图文教程
  10. 使用Nlog记录日志到数据库
  11. 牛客暑期多校第五场A:gpa题解(简单01分数规划)
  12. Facebook算法swift实现
  13. 计算机软件怎么共享使用,局域网共享软件,详细教您局域网共享软件如何使用...
  14. CTF学习笔记(杂项)
  15. 卸载神器:geek(绝对好用,中国人不骗中国人)
  16. webservice学习wsdl解读(2)
  17. 左拥快手右抱抖音,丁磊直播究竟图什么?
  18. 东南大学计算机考研面试题,东南大学复试常问问题今天的模拟面试总结
  19. Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”
  20. 计算机在未来医学中的应用,【-通信传播论文:计算机技术在医学中的应用材料】...

热门文章

  1. 微信小程序 全局变量异步函数_微信小程序【生命周期】
  2. 最优隐神经元数目 算法 matlab,BP算法的改进在Matlab的实现研究
  3. 东师计算机应用基础在线作业,东师《计算机应用基础》15春在线作业1答案
  4. pdh光端机相关知识介绍
  5. 【渝粤教育】国家开放大学2018年春季 0283-21T广告创意与表现(二) 参考试题
  6. 【渝粤教育】国家开放大学2018年秋季 0107-21T现代货币金融学 参考试题
  7. 【渝粤教育】电大中专电子商务网站建设与维护 (21)作业 题库
  8. android 蒙层广告1,subnvue安卓机打开只显示蒙层,没有任何内容【报Bug】
  9. pb65 xp 安装无反应_长春优质AFB型耐腐蚀泵安装
  10. sublime 代码格式化