不用第三方变量如何交换两个整形数

2014-11-23 23:36:35 · 作者: · 浏览: 8

有两个整型变量:int a=2^31-1; int b=-2^31;

方法:

1. 如果是两个较小数值的数可以通过下面的方法解决:

a=a+b;

b=a-b;

a=a-b;

2. 显然,本题的变量数值过大,如果采用方法1,会产生错误,数值超出整形范围,可以采用异或运算(^)

a=a^b;

b=a^b;

a=a^b;

从上可以看出,方法2是个万能的方法,方法1只适合较小数值的运算!

本文出自 “凉冰” 博客