交换两个数的值是一件非常简单的任务,如果交换a与b,我们一般这样做:
tmp = a;
a = b;
b = tmp;
如果不用中间变量tmp,有以下三种方法:
方法1:
a=a+b;
b=a-b;
a=a-b;
方法2:
a=a^b;
b=a^b;
a=a^b;
方法3:
a=a+b-(b=a);
备注:推荐用异或的方法2,方法3是方法1的变体。
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
7.8k累计阅读
7.9k平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄20年
交换两个数的值是一件非常简单的任务,如果交换a与b,我们一般这样做:
tmp = a;
a = b;
b = tmp;
如果不用中间变量tmp,有以下三种方法:
方法1:
a=a+b;
b=a-b;
a=a-b;
方法2:
a=a^b;
b=a^b;
a=a^b;
方法3:
a=a+b-(b=a);
备注:推荐用异或的方法2,方法3是方法1的变体。
数据结构和算法、设计模式
当前文章被以下社区和专栏收录:
Virtuoso ADE Explorer实战技巧:从基础操作到高级仿真
本文深入解析了Virtuoso ADE Explorer在模拟电路仿真中的核心价值与实战技巧。作为Cadence平台的专业工具,它专为高效、系统化的设计空间探索而生,能大幅提升PVT验证、参数扫描和蒙特卡洛分析的效率。文章从基础界面操作、并行仿真管理,到高级的参数扫描、数据报告生成及蒙特卡洛结果深度剖析,提供了全面的避坑指南与工作流优化建议,帮助工程师从重复劳动中解放,专注于电路设计与性能优化。
不使用任何中间变量如何将a、b的值进行交换(三种方法)
方法1.通过相加减可以达到两数交换的目的,优点省事嘛,缺点就是有可能会产生数据溢出的情况。 代码如下: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a = 5, b = 15; a = a + b; b = a - b; a = a - b; printf("a=%d b=%d\n",...
Android音频子系统分析-car_audio_configuration.xml
先附上一个例子,再逐一解释。概括来说,该文件描述了车里有哪些区域,每个区域划分了多少组,每个组包含了哪些设备,每个设备接收哪些类型的音频流。
交换两数(不使用中间变量)
交换两数,其中没有用到临时变量,并且表明了每种方法的缺点,希望大家在使用的时候选择最合适的方法
摄像头模组选型避坑指南:如何根据Sensor和Lens参数匹配最佳组合
本文深入解析摄像头模组选型中Sensor与Lens的核心参数匹配要点。重点阐述了主光线角(CRA)匹配对边缘画质的关键影响,并提供了传感器尺寸、像素尺寸、焦距、光圈等参数的协同选型策略与实战避坑指南,帮助工程师在手机、安防、车载等不同应用场景下实现性能与成本的最佳平衡。
STM32F103ZE驱动PMW3901光流模块,从SPI配置到数据读取的完整避坑指南
本文详细解析了STM32F103ZE驱动PMW3901光流模块的全过程,从SPI配置、硬件连接到数据读取与处理,提供了完整的避坑指南。重点介绍了SPI参数配置、初始化序列优化、运动数据滤波等关键技巧,帮助开发者快速实现精准的光流检测。
不用中间变量交换a和b的值php,C++_C++面试题之数a、b的值互换(不使用中间变量),题目要求:将数a、b的值进行 - phpStudy...
C++面试题之数a、b的值互换(不使用中间变量)题目要求:将数a、b的值进行交换,并且不使用任何中间变量。程序如下:#includevoid swapValue1(int &a, int &b) //使用中间变量交换数据{int temp = a;a = b;b = temp;}void swapValue2(int &a, int &b)//使用加减运算完成数据交...
TwinCAT3 Modbus-TCP Client/Server使用
/起始地址是12289//起始地址是12294。
如何做到不用中间变量来交换两个数的值
可以使用异或运算来实现两个数的交换。 原理:异或即是相同为0,不同为1(二进制表达),其中一个数与任意一个给定的值连续异或两次,值不变,这就是位运算的原理。 例如: a = a^b^a;具体实现:public void swap(int a,int b){ a = a^b; b = a^b; a = a^b; }
全志平台Sensor驱动移植实战:从点亮到调优的完整指南
本文详细介绍了在全志平台上进行Sensor驱动移植的全过程,从硬件引脚配置到软件参数调优,涵盖点亮、出图和调优三大阶段。重点解析了OV02B10传感器的I2C通信建立、上电时序调试和初始化参数配置等关键技术点,并提供了实用的调试技巧与问题排查指南,帮助开发者高效完成全志平台Sensor驱动移植工作。
SpringBoot实战教程-springboot概论
Spring Boot 是一个快速开发框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,以及自动配置。内置web容器,帮助开发者能够实现快速开发,简化了应用系统的初始搭建以及开发过程。
不用中间变量交换两个数的值的方法
刚才突然无意间想到这个问题,然后自己想了一下,就只想到了我们学校自己编写c语言书上的那个方法,于是就在网上搜了一下,结果好多呀!然后自己就总结了一下,权当是找乐子吧! 就设两个变量是x和y吧。 方法一 x=x^y; y=x^y; x=x^y; 这个貌似只能用于整数。方法二 x=x+y; y=x-y; x=x-y; 这个对于整数、小数都可以,只是注意:如果数字大了不
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
不用中间变量,交换两个数的值
通常我们交换 a,b两个变量的值时,都是通过一个中间变量来实现 temp = a; a = b; b = temp; 这里介绍的是不用中间变量,也可以交换两个数的值,具体算法如下: view source print? 1 void swap(int &a, int &b) 2
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
不用中间变量交换两个数的值(位移运算)
看文章看到这个方法就记录一下 1. 一般我们交换两个数的的值,都会增加一份临时变量 例如: int a = 10; int b = 20; int c = a; a = b; b = c; 2. 可以通过数值相加 例如: int a = 10; int b = ...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
c语言 三种不用中间变量交换两个数的值
//第一种 int main() { int a = 5; int b = 3; int tmp = b; printf("a=%d,b=%d\n", a, b); b = a; a = tmp; printf("a=%d,b=%d\n", a, b); return 0; } 不创建临时变量 第二种 int main() { int a = 5; int b = 3; printf("a=%d,b=%d\n", a,...
不用中间变量交换两个变量的值
我们刚学编程的时候遇到需要交换两个变量的值时通常都会定义一个中间变量,比如: #include <iostream> int main() { int a = 4, b = 5; int c = a; a = b; b = c; std::cout << "a =...
不使用中间变量交换两个数
传统方法 在交换两个数的值时,最经常使用的方法是借助于一个中间变量来进行交换。 temp = a; a = b; b = temp; 方法一 通过巧妙的加法与减法运算来实现两个数的交换。 a = a + b; b = a - b; a = a - b; 方法二 使用位运算(异或)来交换
C++不使用中间变量temp交换两个数的值
#include <iostream> using namespace std; int main() { int a = 2, b = 5; cout << "Swap before, value of a, b:" << endl; cout << "a: " << a << ",
【面试】解释C++中如何不用中间变量交换两个数
通过加减法的操作交换两个数,不使用中间变量,但要注意可能的溢出问题。通过异或运算交换两个数,这种方法不会有溢出问题,且适用于所有整数类型。
【C++】怎样不用中间变量temp 实现两个数交换
第一类方法也是常用的方法,通过多次的数值计算来完成交换,到现在知道的有下面三种: (1)加减法。 a = a + b; b = a - b; a = a - b; 该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失,例如对数据: a = 3.123456 b = 1234567.000000 交换后各变量值变为: a = 1234567.000000

被折叠的 条评论
为什么被折叠?



