Digression into Swaps

Did you know you can swap the value of two variables without temp??

$a = $a + $b;
$b = $a – $b;
$a = $a – $b;

I wish I were so clever as to come up with that on my own. Still, I post it here to spark the imagination of those who find it as fascinating as I.

­čśë

Author: Lucello

Something about me?

6 thoughts on “Digression into Swaps”

  1. I should point out that this post arose from a pasta gratin, the baking of which required a swap of two pans to different racks in the oven. Many thanks to Jeremy for englightening us on this subject.

    ­čÖé

  2. If you worry about arithmetic overflow, XOR comes to the rescue

    #include

    main() {
    int a =5;
    int b=7;

    a = a ^b;
    b = b ^a;
    a = a^ b;

    printf (“%d %d\n”, a , b);
    }

  3. Neat, I can vaguely remember doing that once in a programming class two years ago. Now it will hopefully stay on my mind!

  4. That is cool… not sure if C++ compilers would keep the optimization in however – if you really need to cut the extra variable out it might be best to do it in assembly.

Leave a Reply