procedure swap(var a,b:longint);
begin
a:=a + b;
b:=a - b;
a:=a - b;
end;
procedure swap(var a,b:longint);
begin
a:=a xor b;
b:=a xor b;
a:=a xor b;
end;
位运算交换变量
本文介绍了一种使用异或(XOR)运算实现两个变量无临时变量交换的方法。通过三次异或操作,可以在不借助额外存储空间的情况下完成变量a和变量b的值交换。此方法巧妙利用了异或运算的特点,即任何数与自身进行异或运算结果为0,任何数与0进行异或运算结果仍为该数。
procedure swap(var a,b:longint);
begin
a:=a + b;
b:=a - b;
a:=a - b;
end;
procedure swap(var a,b:longint);
begin
a:=a xor b;
b:=a xor b;
a:=a xor b;
end;

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