如何在Java中实现交换两个变量值的方法

Python012

如何在Java中实现交换两个变量值的方法,第1张

通过异或实现(异或符号为^)

关于^:

异或的运算法则,相当于不带进位的二进制加法。二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

第一个数     符号     第二个数     结果

0     ^     0     0

0     ^     1     1

1     ^     0     1

1     ^     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.

此方法同样实现了两个数互换。

最常用的一种方法是:通过一个中间变量来实现数据之间的交换。int a = 1,b = 10

int temp = a将a的值先赋值给中间变量tempa = b然后把b的值赋值给ab = temp最后再把temp中存的a的值赋值给b,System.out.println(a+" "+b)。更多方法可以通过千锋教育进行学习,千锋教育自成立以来就坚持全程面授教学服务,严管大爱,全方位督促、跟踪每一位学员的学习进度,确保每一位学员高质量完成学业,顺利就业。

学习Java选择培训机构很重要,为了保证教学质量,除了强大的师资队伍,还需要与时俱进的课程内容,机构的课程设置一定要合理且科学,其次要看学校是否提供课后辅导,是否有专业老师及时跟进、解决学生的遗留问题。适时安排测评,了解学生掌握情况。通过测评,才能真正掌握学生学习情况,及时做出教学调整,达到真正掌握的目的。另外就业也是最直观的考量因素。

想要了解更多关于Java培训的相关信息,推荐咨询千锋教育。千锋教育成立于2011年1月,立足于职业教育培训领域,公司现有教育培训、高校服务、企业服务三大业务板块。教育培训业务分为大学生技能培训和职后技能培训;高校服务业务主要提供校企合作全解决方案与定制服务;企业服务业务主要为企业提供专业化综合服务。公司总部位于北京,目前已在20个城市成立分公司,现有教研讲师团队300余人。

^是异或操作符。

比如:A=4,B=3,则

对应的二进制A=100,B=011,

A^B=(100)^(011)=111,

即此时A=A^B=111,二进制;

然后,B^A=(011)^(111)=100二进制,转成十进制即为4,即此时B=B^A=4=原来的A,

最后一行A^B=(111)^(100)=011,二进制,转成十进制即为3,即此时A=A^B=3=原来的B,

这样就完成变量交换了。

其实也可以这样完成两个变量交换,而不借用第三个变量:

A=A+B

B=A-B

A=A-B

//望采纳。