不用中间变量交换两个变量的值

版权声明:本文采用 知识共享署名4.0 国际许可协议进行许可。 https://blog.csdn.net/youmian6868/article/details/85199969
解1:

加减法:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失。

public void swap (int a, int b) {
    a = a + b;
    b = a - b;
    a = a - b;
}
解2:

异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换。

异或运算法则有:x ^ 0=x;x ^ x=0;a ^ b=b ^ a;

public void swap (int a, int b) {
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}

猜你喜欢

转载自blog.csdn.net/youmian6868/article/details/85199969