如何用java实现两个变量值的互换
2个回答
展开全部
可以利用以下方式:通过异或实现(异或符号为^)关于^:异或的运算法则,相当于不带进位的二进制加法。二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。第一个数 符号 第二个数 结果0 ^ 0 00 ^ 1 11 ^ 0 11 ^ 1 0如:num1 = 5,对应的二进制为(101); num2 = 7,对应的二进制为(111);num1=num1^num2=2; 即二的平方位1^1=0,二的一次方位0^1=1,二的0次方位1^1=0;得到(010)即为2。num2 = num1 ^ num2=5 ;相当于num2=num1^num2^num2;二的平方位1^1^1=1(此处无论num2的二的平方位是0还是1,异或运算后都为0,故得到的肯定与原num1的二的平方位相同,同理其他位置全部也都是原num1的数);二的一次方位0^1^1=0;二的0次方位1^1^1=1.;得到(101)即为5.num1 = num1^num2=7; 相当于num1 = num1^num2^num1^num2^num2=num2=7.此方法同样实现了两个数互换。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |