当前位置:首页 > 技术心得 > 正文内容

C语言交换两个数

xjtudll16年前 (2011-05-13)技术心得13160

可能大家都认为交换两个数如此的简单,没必要写,没新意。例如,交换a和b两个数,教科书上一直这样写:
temp=b;
a=temp;
b=a;

确实很简单。但是最近看到一段代码,觉得十分高超,是这样的:
a^=b;
b^=a;
a^=b;

同样也是三句代码,但是却未使用局部变量,巧妙吧。

值得注意的是,只有满足以下条件,才能使用上述代码

1、a,b均为无符号数
2、a,b长度一致

这个在单片机中还是有作用的哦,尤其是RAM不足的情况下~~~~

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/177/

标签: C
分享给朋友:

“C语言交换两个数” 的相关文章

简易方波信号发生器

简易方波信号发生器

简易正弦波信号发生器这个是帮别人做的。方波信号发生器要求:(1)搭建硬件电路(2)设计软件,满足    ① 外部触发,可任意选择1KHz、100Hz、1Hz三种方波之一输出(示波器观察)    ② 延时方法包括软件延时和定时器两种方式&nb...

SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.

SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.

问题: IAR 8051 8.302,编译TI的BLE-CC254x-1.4.0的SensorTag工程,对此工程没有进行任何改动,直接编译,出现如下错误: 分析: 参考TI技术论坛【http://www.deyisupport.com/question_answer/wireless_conne...

C# 去掉小数点后面多余的0

1、使用TrimEnd()    decimal num1=(decimal)0.5;    //第一步将浮点数转换成字符串    string strNum=num1.ToString(); &nb...

C# MDI 子窗体被父窗体控件挡住

C# MDI 子窗体被父窗体控件挡住

https://blog.csdn.net/chenyblog/article/details/40752029最近在做一个小工具,发现了一个过去做项目没有遇到的问题:子窗体被父窗体的控件给挡住了!如下图所示:子窗体的TopMost 已经设为true,父窗体的控件已经置于底层,但是结果还是很悲观!无...

水晶报表的文本对象中怎么插入换行符

水晶报表的文本对象中如何插入换行符?我的文本对象要显示的值是从RichTextBox中读出来的,但文本对象不能显示“\n”,怎么让文本对象换行呢?------解决方案--------------------1:不要用文本对象,用公式2:把\n替换成水晶报表里的换行符号Replace(字段,'...

Proteus 7.6 SP4破解1.1+汉化包

下载地址:http://ishare.iask.sina.com.cn/f/6751561.html 说明: 使用方法 复制到安装文件夹 \Proteus 7 Professional\下运行。 中文系统可用, 不用改区域语言设置。 不要安装其他破解 更新历史 1.1(2010.02....

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。