It's fairly simple to write:
int a=5;
int b=3;
a = a ^ b; // a will contain a xor b = 6
b = a ^ b; // b will receive 6 xor 3 = 5
a = a ^ b; // a will become 6 xor 5 = 3
printf("a=%d b=%d", a,b);
But personally I don't like it. I don't like the assignment and I don't like teachers who come up with this stuff.
The reason is that this can easily cause undefined behavior. Look at this line:
b = a ^ b; What value does the right b have? You would say it has it's old value, but perhaps 'a' was already assigned to 'b' before the xor operation was carried out. What would happen then??
You should tell your teacher that this is a worthless assignment and that this horror of a code will only teach bad coding habits and major problems if ever used in a real project.
Last edited by Nick Evan; Apr 18th, 2008 at 7:21 am.
Moderator
Featured Poster
Reputation Points: 4142
Solved Threads: 394
Industrious Poster
Offline 4,132 posts
since Oct 2006