#include <stdio.h>
#include <stdlib.h>
unsigned int GetRevertBit(unsigned int v)
{
v = ((v <<16) & 0xFFFF0000) | ((v >>16) & 0x0000FFFF);
v = ((v << 8) & 0xFF00FF00) | ((v >> 8) & 0x00FF00FF);
v = ((v << 4) & 0xF0F0F0F0) | ((v >> 4) & 0x0F0F0F0F);
v = ((v << 2) & 0xCCCCCCCC) | ((v >> 2) & 0x33333333);
v = ((v << 1) & 0xAAAAAAAA) | ((v >> 1) & 0x55555555);
return v;
}
int main(void)
{
char buf[64];
unsigned int m, n = 0xbc614e;
printf("n = %X (%s)\n", n, itoa(n, buf, 2));
m = GetRevertBit(n);
printf("m = %X (%s)\n", m, itoa(m, buf, 2));
system("pause");
return 0;
}