不用中间变量交换 a ,b(三种方法)
来源:百度知道 编辑:UC知道 时间:2024/05/25 17:38:54
a = a + b;
b = a - b;
a = a - b;
a = a^b;
b = a^b;
a = a^b;
还有其他方法的,但是我忘记了,谁会
b = a - b;
a = a - b;
a = a^b;
b = a^b;
a = a^b;
还有其他方法的,但是我忘记了,谁会
不用中间变量交换两个变量的值:
1、加减法:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失。
a = a + b;
b = a - b;
a = a - b;
2、异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换。
a = a^b;
b = a^b;
a = a^b;
3、乘除法:可以处理整型和浮点型变量,但在处理浮点型变量时也存在精度损失问题。而且乘除法比加减法要多一条约束:b必不为0。
a = a * b
b = a / b
a = a / b
其中加减,乘除容易越界,用位运算异或效率最高,且不会越界。
使用位运算交换两个数,是利用了异或的自反性: a^b^b=a^0=a;
扩展资料:
异或,英文为exclusive OR,缩写成xor
异