@Kumar: How about this:
int exchange2bits(int n, int i, int j) // exchange bits i and j of n.
{
int ni, nj;
ni = n & (1 << i);
nj = n & (1 << j);
return n & ~(ni | nj) | ((ni >> i) << j) | ((nj >> j) << i);
}
ni is bit i of n. nj is bit j of n. n & (ni | nj) removes the two
bits, and then they are shifted to the exchanged positions and or'd
in.
Dave
On Sep 13, 1:50 pm, kumar raja <[email protected]> wrote:
> Suppose a number 'n' is given and two bits positions i,j present in binary
> representation of n .
>
> Then how to exchange the contents of the two bits i and j.
>
> E.g. n= 13
> its binary representation is 0000 1101 (just for now consider 8 bit number)
>
> i= 2,j=6
>
> o/p : 0100 1001 = 73
>
> please suggest some effective way to do this...
>
> --
> Regards
> Kumar Raja
> M.Tech(SIT)
> IIT Kharagpur,
> [email protected]
> 7797137043.
> 09491690115.
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.