在不使用第三方变量的情况下,实现两数据交换
在浏览了很多的百度和博客后觉得有必要在进一步解释一下Java中再不借助第三变量的情况下如何实现数据的转换
本代码适合新手小白哦!
来看看源代码
public static void main(String[] args){
int a = 10;
int b = 20;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a);
System.out.println(b);
}
代码解释
int a=10;--- 将十进制10转换成二进制:10100,
int b=20;-----将十进制的20转换成二进制:00010,
a=a^b; -----a^b是指在a和b两个二进制进行位运算,(注:在位运算中0^0=0,0^1=1,1^1=0,)
所以
a=a^b,得到的新的数值a的二进制的值为10110,
b=a^b,得到新的数值b的二进制的值为 10100,
a=a^b,最后得出的新的a的二进制的值为00010,
原a的二进制的值为10100,原b二进制的值为00010
新a的二进制的值为00010,新b的二进制的值为10100
结束语
文章有什么不足之处欢迎进行批评和修改,如果对您有帮助也可以给个关注呢!