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

C语言交换两个数

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

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

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

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

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

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

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

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

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

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

标签: C
分享给朋友:

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

Excel引用单元格地址的方法

单元格本身有两种表示方式: 1、列用字母,行用数字 例如:A1表示第一行第一列,A2表示第二行第一列 2、R表示行,C表示列 例如:R1C1就表示1行1列,R5C8就表示第5行第8列。 Excel单元格地址引用有两大方式:相对引用和绝对引用。 (1) 对于第一种单元格表示方式(A1) 其相对引用和绝...

CSDN、博客园文章图片无法复制粘贴的办法(不需要脚本)

CSDN、博客园文章图片无法复制粘贴的办法(不需要脚本)

本质就是利用浏览器的阅读器模式1、使用Edge浏览器在网址前面加read://例如:原网址:https://blog.csdn.net/qq_57139623/article/details/134045280阅读器模式:read://https://blog.csdn.net/qq_5713962...

Keil C51某些汉字不显示bug解决

Keil C51某些汉字不显示bug解决

这个问题是在用ST7920 LCD 12864时发现的,“星期三”中的“三”字显示不出来。经查,发现是Keil编译器的问题,编译器在编译汉字时会将汉字内码0xFD给过滤掉,导致汉字显示不正常。 一、直接用汉字编码 如果直接用编码则不会有这个问题。例如,...

模数转换器基本原理

模数转换器基本原理

模数转换一般分为采样、保持、量化和编码四步进行。 采样-保持 采样是将时间上连续变化的信号转换为时间上离散的信号,采样值取决于采样时间内输入模拟信号的大小。 根据采样定理,其采样频率fS必须大于等于输入模拟信号包含的最高频率fmax的两倍。采样频率的一般选取为: 要对模拟信号的采样值进行...

Altium在生成PCB时,怎样取消掉room空间?

Altium在生成PCB时,怎样取消掉room空间?

从原理图生成PCB时 总会生成一个或多个网络区域 该区域ROOM在一般的情况下没有什么作用 反而会对我们的设计会带来一些不便 那怎么样才能取消此区域(room空间)呢! 方法一 在导入到pcb中时 我们执行变更的 选项栏中将room的选项的勾去掉 这样导入pcb时就不会把room导入了 方法二...

SVN强制写日志和修改日志功能

SVN默认是可以不写日志的,也不能修改日志,使用时颇为不便。以下就讲述如何在windows系统下实现强制写日志和修改日志功能。 1、强制用户写日志 在每次提交的时候写明提交的目的是一个很好的习惯,SVN默认没有提供,但是可以通过脚本实现:将下面的代码存为bat文件,放到版本库的hooks目录下即可,...

发表评论

访客

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