@Amit

char foo=157;        //10 01 11 01

unsigned char temp;
unsigned char base=1;
int i;

for(i=7; i>0; i=i-2)
{
temp=foo & (base<<i);             // saving the 7th, 5th, 3rd, 1st bit
printf("%x\n", temp);

foo = (~(base<<i) & foo)  |  (((base<<(i-1)) & foo)<<1);  // moving 6th,
4th, 2nd, 0th bit to adjacnt position
foo = (~(base<<(i-1)) & foo )  |  (temp>>1);  // setting the 6th, 4th, 2nd,
0th  from temp
}


printf("%d\n", foo);hope it works :)

o/p
foo=110 // 01 10 11 10


Mohit


On Mon, Jun 21, 2010 at 5:37 PM, amit <amitjaspal...@gmail.com> wrote:

> Given a byte, write a code to swap every two bits. [Using bit
> operators] Eg: Input: 10 01 11 01 Output: 01 10 11 10
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algoge...@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to