正文

在不引用第3参数的条件下将 a,b的值互换2006-11-16 19:36:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/20383.html

分享到:

有两个参数 a=10 , b=15;
在不引用第3参数的条件下将 a,b的值互换

不考虑溢出有如下方法:
(1)
a = a + b; //a=25,b=15
b = a - b; //a=25,b=10
a = a - b; //a=15,b=10
同样:
b = b - a; //a=10 b=10
a = a + b; //a=20 b=10
b = 2 * b; //a=20 b=20

(2)
b=a-(a=b)*0
或者
b=a+(a=b)*0
或者
a=b+(b=a)*0;

(3)
a=a*b;
b=a/b;
a=a/b;

考虑溢出有如下方法:
(4)
a=a^b;
b=a^b;
a=a^b;
精简点的:
a^=b^(b^=a^b);
或者
a^=b^=a^=b;

(5)
还有汇编利用堆栈的:
push a
push b
pop b
pop a

阅读(3430) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册