首先麻烦了解这篇csdn文章:

使用异或运算实现两数交换_无关风月-CSDN博客_异或实现两数交换

异或^:相同为0;不同为1;

对于b=a^b^a;//我始终没有比较好的理解。

后来通过b/a*a,我想会不会a把a给约掉了这样去理解,然后尝试去证明了一下。

当相同的时候,结果是0;

那a^b^a交换位置a^a^b,a^a得到0。

先来看看,当值2为0异或过程中看表

值1 异或 值2 结果
1 ^ 0 1
0 ^ 0 0

发现当值2为0的时候结构会保存值1的值。

也就是说a^b^a的时候,a实际和“约掉了一样”。

现在在来看看值是2为1的时候。

值1 异或 值2 结果
1 ^ 1 0
0 ^ 1 1

其他 :看看代码实现

#include<stdio.h>
int main()
{int a,b;scanf("%d,%d",&a,&b);a=a^b;b=a^b;a=a^b;printf("a=%d,b=%d",a,b);return 0;
}

运行结果:

关于C语言异或实现两数交换的理解相关推荐

  1. 左神讲算法——异或的高级操作(两数交换+经典面试题)

    目录 1. 异或的性质 2. 两数交换 3. 经典面试例题 参考链接:2021最新左神数据结构算法全家桶 1. 异或的性质 异或可以看成相同为1,不同为0:也可以看作无进位相加,有奇数个1则结果为1, ...

  2. 【牛客网】C语言入门 - CC3 编写函数实现两数交换(指针方式)

    题目描述 题目链接:编写函数实现两数交换(指针方式) 描述 编写一个函数,实现两个整数的交换,要求采用指针的方式实现. 输入描述: 键盘输入2个整数 m 和 n 输出描述: 输出交换后m 和 n 的值 ...

  3. Java中两数交换引发的值传递问题及解决方案

    Java中两数交换引发的值传递问题及解决方案 今天导师分享了一个有趣的代码,记录一下,让我们一起看看~ //交换两个整数 private static void swap(int i, int j) ...

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

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

  5. 实现两数 交换的三种不同编程方法。

    第一种 即常规方法 借助第三变量 int a = 5,b = 3,c; c = a; a = b; b = c; 第二种 不借助第三变量 int a=5,b=3,c; a = a+b;    //(缺 ...

  6. C语言宏定义取得两数的最大值和最小值

    /*本程序时为了验证用宏来做  * 两个数的大小比较的写法*/ #include<stdio.h> #define MAX(x,y) ((x)<(y)?(y):(x)) #defin ...

  7. 用sum函数求三个数和C语言,C语言用函数写两数之和.doc

    #include void main() { int a,b,sum; scanf("%d,%d",&a,&b); sum=a+b; printf("%d ...

  8. C语言用函数写两数之和

    #include<stdio.h> void main() { int a,b,sum; scanf("%d,%d",&a,&b); sum=a+b; ...

  9. C语言实现辗转相除法计算两数最大公约数

    欧几里得算法: #include<stdio.h> #include<math.h>int main() {int x,y,a;scanf("%d%d",& ...

最新文章

  1. 正则表达式中的\.表示什么意思
  2. LeetCode中等题之最简分数
  3. 存储过程DataGrid分页及注意点
  4. Linux-grep 命令和find 命令 (6)
  5. 路由 交换 网桥 相关转贴
  6. 钉钉微应用怎么进入_蓝凌携手钉钉走进越秀地产,零距离热聊企业数字化转型...
  7. 如何查看电脑配置信息_如何查看软件著作权登记的信息?
  8. Illustrator 教程,如何在 Illustrator 中添加文本段落?
  9. MAKEWORD,MAKELONG,LOWORD,HIWORD,LOBYTE,HIBYTE 的使用
  10. web课程设计网页规划与设计 HTML+CSS+JavaScript仿英雄联盟LOL首页(1个页面)
  11. 解决外边距坍塌的几种方法
  12. 多线程+SOCKET编程实现qq群聊的服务端和客户端
  13. 谷歌浏览器开启并行下载
  14. 《5G NR标准:下一代无线通信技术》读书笔记——LTE概述
  15. 迸发中的小i机器人,2018年多处开花
  16. 第15章_存储过程与函数(创建存储过程、调用存储过程、存储函数的使用、存储过程和函数的查看、修改、删除)
  17. 【micropython】滑动平均滤波
  18. 吕鑫老师VS2015系列教程资源
  19. 理解Linux系统中的load average(图文版)
  20. VIM实用指南(16)vim粘贴格式错乱

热门文章

  1. 用c语言求解n阶线性矩阵方程组,用C语言求解N阶线性矩阵方程Ax=b的简单解法
  2. Phoenix实践 —— Phoenix SQL常用基本语法总结小记
  3. 网站建设:提高网站访问量的策略
  4. 关于ST-Link在Keil5中无法识别的解决办法
  5. 开源阅读书源_手机阅读app,只推荐这几款,杂志,漫画英文小说,都可以免费轻松阅读...
  6. S扫描器 宝刀未老的DOS系统中的扫描器
  7. wps excel中如何实现替换换行(换行符如何打出来放到替换文本框中去)
  8. 怎么取消苹果手机自动续费_怎么取消腾讯视频自动续费
  9. 【工业物联网】2018工业物联网产业发展及投资价值榜单
  10. 垃圾公司对回报率计算的影响几何?