「java交换值」java两个数值交换

博主:adminadmin 2022-11-25 20:52:08 65

今天给各位分享java交换值的知识,其中也会对java两个数值交换进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java程序中,怎么互换2个变量的值?

用第三个变量来存储。

就是再申请一个变量。

int

num1=10;

int

num2=8;

int

temp=0

temp=num1;//将num1的值赋给中间变量temp

num1=num2;//将num2的值赋给num1;

num2=temp;//将temp的值赋给num2,num1和num2的值就互换了。

这个方法是最通用的,记住这个就行了。

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

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

关于^:

异或的运算法则,相当于不带进位的二进制加法。二进制下用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.

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

交换两个数的值(用JAVA编写)

基本类型无法按引用传递,详见『ヤ;搁[浅灬メ』的解释,我只提供一种实现方案,一定要用函数调用来实现的话,可以传个数组过去

import java.io.*;

public class Compare

{

public static void change(int[] a) throws Exception

{

int temp=0;

temp=a[0];a[0]=a[1];a[1]=temp;

}

public static void main(String args[]) throws Exception

{

int[] a = new int[2];

System.out.println("输入a:");

InputStreamReader inreader=new InputStreamReader(System.in);

BufferedReader breader=new BufferedReader(inreader);

a[0]=Integer.parseInt(breader.readLine());

System.out.println("输入b:");

a[1]=Integer.parseInt(breader.readLine());

System.out.println("交换前a="+a[0]+" 交换前b="+a[1]);

change(a);

System.out.println("交换后a="+a[0]+" 交换后b="+a[1]);

}

}

java如何实现2个数之间互换

利用异或(a^b)^b 等于a,进行交互,不需要设置临时变量也不会超范围。代码如下:

import java.util.Scanner;

public class woo {

public static void main(String args[]) {

Scanner scan =new Scanner(System.in);

System.out.println("输入两个数a, b");

int a = scan.nextByte();

int b = scan.nextByte();

System.out.printf("交换前:a = %d, b = %d\n", a, b);

a = a^b;

b = a^b;

a = a^b;

System.out.printf("交换后:a = %d, b = %d", a, b);

}

}

扩展资料:

值传递就是在方法调用的时候,实参是将自己的一份拷贝赋给形参,在方法内,对该参数值的修改不影响原来实参。

引用传递是在方法调用的时候,实参将自己的地址传递给形参,此时方法内对该参数值的改变,就是对该实参的实际操作。

在java中只有一种传递方式,那就是值传递.可能比较让人迷惑的就是java中的对象传递时,对形参的改变依然会意向到该对象的内容。

参考资料:

百度百科——参数传递

如何用java实现两个变量值的互换

可以利用以下方式:通过异或实现(异或符号为^)关于^:异或的运算法则,相当于不带进位的二进制加法。二进制下用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.此方法同样实现了两个数互换。

java交换两个变量的值。。。

^是异或操作符。

比如: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;

//望采纳。

java交换值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java两个数值交换、java交换值的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。