不借助第三方变量实现两个整数变量值的互换
2013-11-06 07:34
281 查看
方法1:
public void test(int a,int b){
System.out.println("a="+a+";b="+b);
a=a+b;
b=a-b;//a-b为原来a中的值。
a=a-b;//由于此时的b是原来a中的值,所以本行代码的a-b即为原来b中的值。
System.out.println("a="+a+";b="+b);
}
注意:这种情况有一个局限性:由于a和b的值是未知的,所以如果这两个值都比较大的时候,则容易出现超出int范围的问题。
方法2:
public void test_1(int a,int b){//采用异或运算符来实现,这种方法的原理是使用了异或运算这样一个特点:一个数异或同一个数两次其结果还是那个数。
System.out.println("a="+a+";b="+b);
a=a^b;
b=a^b;//相当于(a(刚传过来的a)^b(刚传过来的a))^b(刚传过来的a),根据异或运算的特点可知其结果为a(刚传过来的a),即b=a(刚传过来的a)。
a=a^b;//相当于(a(刚传过来的a)^b(刚传过来的b))^b,由于代码执行过上面的代码后b的值变为了a(刚传过来的a),所以等号右边相当于(a(刚传过来的a)^b(刚传过来的b))^a(刚传过来的a),根据异或运算的特点可知其结果为b(刚传过来的b)。
System.out.println("a="+a+";b="+b);
}
public void test(int a,int b){
System.out.println("a="+a+";b="+b);
a=a+b;
b=a-b;//a-b为原来a中的值。
a=a-b;//由于此时的b是原来a中的值,所以本行代码的a-b即为原来b中的值。
System.out.println("a="+a+";b="+b);
}
注意:这种情况有一个局限性:由于a和b的值是未知的,所以如果这两个值都比较大的时候,则容易出现超出int范围的问题。
方法2:
public void test_1(int a,int b){//采用异或运算符来实现,这种方法的原理是使用了异或运算这样一个特点:一个数异或同一个数两次其结果还是那个数。
System.out.println("a="+a+";b="+b);
a=a^b;
b=a^b;//相当于(a(刚传过来的a)^b(刚传过来的a))^b(刚传过来的a),根据异或运算的特点可知其结果为a(刚传过来的a),即b=a(刚传过来的a)。
a=a^b;//相当于(a(刚传过来的a)^b(刚传过来的b))^b,由于代码执行过上面的代码后b的值变为了a(刚传过来的a),所以等号右边相当于(a(刚传过来的a)^b(刚传过来的b))^a(刚传过来的a),根据异或运算的特点可知其结果为b(刚传过来的b)。
System.out.println("a="+a+";b="+b);
}
相关文章推荐
- Java实现两个变量值互换-----不借助第3个变量
- 不借助第三个变量,实现两个整数互换值
- 实现两个整数变量的互换(不借助其他变量)
- 不借助中间变量实现两个变量值得互换
- Java基础知识强化05:不借助第三个变量实现两个变量互换
- 不借助第三个变量实现两个变量的互换
- 实现两个变量的互换(不借助第三个变量)
- 为什么异或运算可以实现两个整数的交换,而无需借助第3个临时变量
- 4:如何实现对两个整数变量的值进行互换。
- 对两个整数变量的值进行互换(不需要第三方变量)
- 对两个整数变量的值进行互换(不需要第三方变量)
- Java两个变量的互换(不借助第3个变量)具体实现方法
- 对两个整数变量的值进行互换(不需要第三方变量)
- 05-不借用第三个变量实现两个变量值互换(运算符)
- Java实现两个变量的互换(不借助第3个变量)
- Java基础应用之运算符(实现两个变量的互换(借助第3个变量))
- Java基础应用之运算符(实现两个变量的互换(不借助第3个变量))
- 不借助第三方变量,将x,y两个变量的值互换。
- 实现两个变量的值传递和互换(不借助第3个变量)
- 不借助第三方变量,将x,y两个变量的值互换。