实现两个数的交换(异或,加减)
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;
实现两个数的交换(异或,加减)相关推荐
- 【C/C++】异或操作巧妙实现两个数的交换操作
今天在看OpenGL加载TGA格式图像用作纹理的代码时,看到关于RGB(A)顺序转换的一行代码时,捉一开始感到很困惑,后来想了想,就是实现交换操作. 原始代码: texture->imageDa ...
- 实现两个数交换python_编写一个程序,用于实现两个数的交换。_学小易找答案
[判断题]定喘穴定位在胸部 (10.0分) [其它]实现实心等腰三角形图案打印输出. [其它]编写一个程序,用于实现两个数的交换. [其它]实现空心等腰三角形图案打印输出. [判断题]表寒肺热证的代表 ...
- 用指针和函数的方法完成两个数的交换
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容6]用指针和函数的方法完成两个数的交换 传递规则:主函数 ...
- 【c语言】输入两个数,交换这两个数后,再输出
<程序设计基础实训指导教程-c语言>杨莉 龚义建 科学出版社 ISBN 978-7-03-032846-5 p9 2.1.2 上机实训内容 [实训内容3] 编程实现:输入两个数,交换这两个 ...
- 指针,指针:分装一个函数,实现两个数的交换。 指向固定的区域
1.指针的引入 //第9行,取值运算符*,他把后面跟的内存地址中的数据"取出来": 2.指针变量的引入 什么是指针变量:存放地址的变量 什么是指针变量:存放指针的变量 指针 = 地 ...
- 数组中两个数的最大异或值 两数异或值一定小于两数相加和
链接:数组中两个数的最大异或值 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n . 进阶:你可以在 O(n) 的时间 ...
- arrays中copyof复制两个数组_异或的魅力!图解「数组中两个数的最大异或值」
今天分享的题目来源于 LeetCode 第 421 号问题:数组中两个数的最大异或值.在 异或 这个知识点里面属于一个中高难度的题目. 题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, ...
- LeetCode 421. 数组中两个数的最大异或值
421. 数组中两个数的最大异或值 Idea 假设选择了数组中的元素ai和aj使得它们达到最大按位异或结果x:x=ai⊕ajx=a_{i}⊕a_{j}x=ai⊕aj,其中⊕表示按位异或运算. 根据 ...
- 421. 数组中两个数的最大异或值
题目:421. 数组中两个数的最大异或值 题解:https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/solu ...
最新文章
- 基于图的异常检测(三):GraphRAD
- 单元测试Struts2的Action(包含源码)
- HDU - 4858 项目管理
- 检索数据_10_通过多条件组合返回数据
- 提升代码可读性的 10 个技巧
- 学习笔记之-------UIScrollView 基本用法 代理使用
- [css] 为什么说css的选择器一般不要超过三级?
- Linux Shell脚本专栏_自动发布Java项目(tomcat)_10
- mysql 5.6.15安装图解_Windows8下mysql 5.6.15 安装配置方法图文教程
- 使用Nlog记录日志到数据库
- 牛客暑期多校第五场A:gpa题解(简单01分数规划)
- Facebook算法swift实现
- 计算机软件怎么共享使用,局域网共享软件,详细教您局域网共享软件如何使用...
- CTF学习笔记(杂项)
- 卸载神器:geek(绝对好用,中国人不骗中国人)
- webservice学习wsdl解读(2)
- 左拥快手右抱抖音,丁磊直播究竟图什么?
- 东南大学计算机考研面试题,东南大学复试常问问题今天的模拟面试总结
- Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”
- 计算机在未来医学中的应用,【-通信传播论文:计算机技术在医学中的应用材料】...
热门文章
- 微信小程序 全局变量异步函数_微信小程序【生命周期】
- 最优隐神经元数目 算法 matlab,BP算法的改进在Matlab的实现研究
- 东师计算机应用基础在线作业,东师《计算机应用基础》15春在线作业1答案
- pdh光端机相关知识介绍
- 【渝粤教育】国家开放大学2018年春季 0283-21T广告创意与表现(二) 参考试题
- 【渝粤教育】国家开放大学2018年秋季 0107-21T现代货币金融学 参考试题
- 【渝粤教育】电大中专电子商务网站建设与维护 (21)作业 题库
- android 蒙层广告1,subnvue安卓机打开只显示蒙层,没有任何内容【报Bug】
- pb65 xp 安装无反应_长春优质AFB型耐腐蚀泵安装
- sublime 代码格式化