For reversing each odd bits of a given number, simply do XOR ’^’ each of its 4 hex parts with 0101. See an example:

If we convert binary 0101 in hexadecimal then it will become 0x5

temp = number ^ 0x55555555 /* This statement reverse all odd bits of number */

** **For reversing each even bits of a given number, simply do XOR ’^’ each of its 4 hex parts with 1010. See an example:

If we convert binary 1010 in hexadecimal then it will become 0xA

temp = num ^ 0xAAAAAAAA /* This statement reverse all even bits of number */

This is not reverse program it is inverting/flip of even and odd bits……….

/* reverse even bits only without affecting even bits */

#include

int reverse(int);

void displaybits(int);

int main()

{

int a;

printf(“enter Number\n”);

scanf(“%i”,&a);

displaybits(a);

// printf(“%x”,reverse(a));

displaybits(reverse(a));

}

int reverse(int a)

{

unsigned int reverse_num=0,i,temp;

unsigned int odd_bits=a&0x55555555;

unsigned int even_bits=a&0xAAAAAAAA;

for(i=1;i<32;i=i+2)

{

temp=(a & (1<<i));

// printf("temp:%d",temp);

if(temp)

reverse_num |= (1<0)

{

if(x & MASK)

printf(“1”);

else

printf(“0″);

printf(” “);

MASK=MASK>>1;

}

printf(“\n”);

}