/* Function to reverse bits of num */
unsigned int reverseBits(unsigned int num)
{
unsigned int NO_OF_BITS = sizeof(num) * 8;
unsigned int reverse_num = 0, i, temp;
for (i = 0; i < NO_OF_BITS; i++)
{
temp = (num & (1 << i));
if(temp)
reverse_num |= (1 << ((NO_OF_BITS - 1) - i));
}
return reverse_num;
}
unsigned int reverseBits(unsigned int num)
{
unsigned int NO_OF_BITS = sizeof(num) * 8;
unsigned int reverse_num = 0, i, temp;
for (i = 0; i < NO_OF_BITS; i++)
{
temp = (num & (1 << i));
if(temp)
reverse_num |= (1 << ((NO_OF_BITS - 1) - i));
}
return reverse_num;
}
OR
int reverseBits(unsigned int num)
{
unsigned int temp = num;
// Reverse the bits in this number.
// temp will have the reversed bits of num.
int i = 0;
for (i = (sizeof(num)*8-1); i > 0; i--)
{
temp = temp | (num & 1);
temp <<= 1;
num >>= 1;
}
temp = temp | (num & 1);
return(temp);
}
No comments:
Post a Comment