现在有个题是:
要求不创建临时变量,来交换a,b的值,问有几种办法
首先先来一个创建临时变量交换的
int temp=0;
temp=a;
a=b;
b=temp;
相信大家也都会,哈哈哈,就不多讲了
加减法
接下来这种就是加减法,用数学的思维来解决问题
a=a+b;
b=a-b;
a=a-b;
然后还有一种就是利用计算机二进制的特性,异或操作符进行
异或法
a=a^b;
b=a^b;
a=a^b;
异或^操作符:是一个位操作符,针对于二进制位(比特位)的操作。
规则:两个数在同一个二进制位(比特位),相同为0;不同为1。
异或操作符的一些性质:
任何一个数与自己异或都等于0:
a^a=0;
3.2 任何一个数与0进行异或操作等于它自己:
a^0=a;
3.3 异或运算满足交换律,结合律 :
a^b=b^a;
(a^b)^c=a^(b^c);