int a = 0x7f00ff00;// 123456789;
int b = 0x7fffff00;// 901234567;
System.Diagnostics.Debug.WriteLine("start a = {0}, b = {0}, ", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.Diagnostics.Debug.WriteLine("end a = {0}, b = {0}, ", a, b);
运行结构如下
start a = 2130771712, b = 2130771712,
end a = 2147483392, b = 2147483392,
上面是使用异或运算进行的实验。
如果不考虑越界(超范围,如果数值比较小)可以考虑使用加减法进行
int a = 123456789;
int b = 901234567;
System.Diagnostics.Debug.WriteLine("start a = {0}, b = {0}, ", a, b);
a = a + b;
b = a - b;
a = a - b;
System.Diagnostics.Debug.WriteLine("end a = {0}, b = {0}, ", a, b);
运行结果如下
start a = 123456789, b = 123456789,
end a = 901234567, b = 901234567,

被折叠的 条评论
为什么被折叠?



