加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

关于数值交换的几种方法

发布时间:2020-12-14 03:16:04 所属栏目:大数据 来源:网络整理
导读:作者:华清远见讲师 在大量的开发中常常会遇到需要交换两个数值的问题,今天就给大家分享一些数值交换方面的方法: 第一种方法: 这也是大家最容易想到的方法,即利用中间变量达到交换两个数的目的,具体如下: int tmp; tmp = i1; i1 = i2; i2 = tmp; 这种方

作者:华清远见讲师

在大量的开发中常常会遇到需要交换两个数值的问题,今天就给大家分享一些数值交换方面的方法:

第一种方法:

这也是大家最容易想到的方法,即利用中间变量达到交换两个数的目的,具体如下:

int tmp;

tmp = i1;

i1 = i2;

i2 = tmp;

这种方法执行效率是最低了

第二种方法:

利用数学中的运算技巧:

i1 = i1 + i2;

i2 = i1 - i2;

i1 = i1 - i2;

这样也可以实现两个数的交换

第三种方法:

则是利用位运算中的异或来实现数据交换

i1 = i1 ^ i2;

i2 = i1 ^ i2;

i1 = i1 ^ i2;

这种方式的执行效率相对来说比较高。

源代码如下:

#include

void swap1(int i1,int i2)

{

int tmp;

tmp = i1;

i1 = i2;

i2 = tmp;

}

void swap2(int i1,int i2)

{

i1 = i1 + i2;

i2 = i1 - i2;

i1 = i1 - i2;

}

void swap3(int i1,int i2)

{

i1 = i1 ^ i2;

i2 = i1 ^ i2;

i1 = i1 ^ i2;

}

int main(void)

{

int i,j;

i = 3;

j = 5;

swap1(i,j);

printf("i = %d,j = %dn",i,j);

i = 6;

j = 8;

swap1(i,j);

i = 2;

j = 7;

swap1(i,j);

return 0;

}

执行结果:

文章选自华清远见嵌入式培训

>>>更多优秀技术博文每日更新

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读