不使用变量实现两个变量的数值转换
int a=3,
b=4;
b=a+b;
a=b-a;
b=b-a;
请问还有其他方法不?
是不是有个什么临时储存?
------解决方案--------------------我觉得这办法已经很简单了,还有一个用或运算的。人家说溢出可能是超出精度了。
------解决方案--------------------a/=2
b/=2
b=a+b;
a=(b-a)*2;
b=(b-a)*2;
这样不会溢出了吧
------解决方案--------------------四个整数类型的范围
byte -2的7次方 ... 2的7次方-1
short -2的15次方... 2的15次方-1
int -2的31次方 ... 2的31次方-1
long -2的63次方 ... 2的63次方-1
临时存储时采用了一个中间变量,如下
int a=3,
b=4;
int temp;//temp 中间变量
temp = a;
a = b;
b = temp;
------解决方案--------------------int a=3, b=4;
a=a^b;
b=a^b;
a=a^b;
完成交换,此时a=4,b=3
------解决方案--------------------Java code
int a=3, b=4;
a=b;
b=b-b/a;
------解决方案--------------------