关于C语言异或实现两数交换的理解
首先麻烦了解这篇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. 异或的性质 2. 两数交换 3. 经典面试例题 参考链接:2021最新左神数据结构算法全家桶 1. 异或的性质 异或可以看成相同为1,不同为0:也可以看作无进位相加,有奇数个1则结果为1, ...
- 【牛客网】C语言入门 - CC3 编写函数实现两数交换(指针方式)
题目描述 题目链接:编写函数实现两数交换(指针方式) 描述 编写一个函数,实现两个整数的交换,要求采用指针的方式实现. 输入描述: 键盘输入2个整数 m 和 n 输出描述: 输出交换后m 和 n 的值 ...
- Java中两数交换引发的值传递问题及解决方案
Java中两数交换引发的值传递问题及解决方案 今天导师分享了一个有趣的代码,记录一下,让我们一起看看~ //交换两个整数 private static void swap(int i, int j) ...
- 数组中两个数的最大异或值 两数异或值一定小于两数相加和
链接:数组中两个数的最大异或值 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n . 进阶:你可以在 O(n) 的时间 ...
- 实现两数 交换的三种不同编程方法。
第一种 即常规方法 借助第三变量 int a = 5,b = 3,c; c = a; a = b; b = c; 第二种 不借助第三变量 int a=5,b=3,c; a = a+b; //(缺 ...
- C语言宏定义取得两数的最大值和最小值
/*本程序时为了验证用宏来做 * 两个数的大小比较的写法*/ #include<stdio.h> #define MAX(x,y) ((x)<(y)?(y):(x)) #defin ...
- 用sum函数求三个数和C语言,C语言用函数写两数之和.doc
#include void main() { int a,b,sum; scanf("%d,%d",&a,&b); sum=a+b; printf("%d ...
- C语言用函数写两数之和
#include<stdio.h> void main() { int a,b,sum; scanf("%d,%d",&a,&b); sum=a+b; ...
- C语言实现辗转相除法计算两数最大公约数
欧几里得算法: #include<stdio.h> #include<math.h>int main() {int x,y,a;scanf("%d%d",& ...
最新文章
- 正则表达式中的\.表示什么意思
- LeetCode中等题之最简分数
- 存储过程DataGrid分页及注意点
- Linux-grep 命令和find 命令 (6)
- 路由 交换 网桥 相关转贴
- 钉钉微应用怎么进入_蓝凌携手钉钉走进越秀地产,零距离热聊企业数字化转型...
- 如何查看电脑配置信息_如何查看软件著作权登记的信息?
- Illustrator 教程,如何在 Illustrator 中添加文本段落?
- MAKEWORD,MAKELONG,LOWORD,HIWORD,LOBYTE,HIBYTE 的使用
- web课程设计网页规划与设计 HTML+CSS+JavaScript仿英雄联盟LOL首页(1个页面)
- 解决外边距坍塌的几种方法
- 多线程+SOCKET编程实现qq群聊的服务端和客户端
- 谷歌浏览器开启并行下载
- 《5G NR标准:下一代无线通信技术》读书笔记——LTE概述
- 迸发中的小i机器人,2018年多处开花
- 第15章_存储过程与函数(创建存储过程、调用存储过程、存储函数的使用、存储过程和函数的查看、修改、删除)
- 【micropython】滑动平均滤波
- 吕鑫老师VS2015系列教程资源
- 理解Linux系统中的load average(图文版)
- VIM实用指南(16)vim粘贴格式错乱
热门文章
- 用c语言求解n阶线性矩阵方程组,用C语言求解N阶线性矩阵方程Ax=b的简单解法
- Phoenix实践 —— Phoenix SQL常用基本语法总结小记
- 网站建设:提高网站访问量的策略
- 关于ST-Link在Keil5中无法识别的解决办法
- 开源阅读书源_手机阅读app,只推荐这几款,杂志,漫画英文小说,都可以免费轻松阅读...
- S扫描器 宝刀未老的DOS系统中的扫描器
- wps excel中如何实现替换换行(换行符如何打出来放到替换文本框中去)
- 怎么取消苹果手机自动续费_怎么取消腾讯视频自动续费
- 【工业物联网】2018工业物联网产业发展及投资价值榜单
- 垃圾公司对回报率计算的影响几何?