In programming, a common task is to swap the values of two variables. Lines 4060 of the program below perform the swap using a temporary variable (T).
10 A=123
20 B=456
30 PRINT A,B
40 T=A
50 A=B
60 B=T
70 PRINT A,B
Rewrite the program to swap the values in A and B without using a temporary variable.
Note: The new program will not require sophisticated programming or complex math.
Since this looks like it was written in GWBASIC (aka BASICA), you could use
SWAP A,B
but that's cheating, and also internally probably uses a temporary variable.
The classic method is
A = A XOR B
B = A XOR B
A = A XOR B
This works in integers in Basic, but rerun141's answer allows floating point numbers with fractions also. In languages like C or C++, the XOR could be done on a bytebybyte basis, avoiding loss of precision in nonintegral floatingpoint numbers, and working with equalsized strings as well.

Posted by Charlie
on 20040102 17:03:48 