Problmes on Bit Manipulations

1. Reverse the bits of an unsigned integer. ANS. #define reverse(x) (x=x>>16|(0x0000ffff&x)<<16, x=(0xff00ff00&x)>>8|(0x00ff00ff&x)<<8, x=(0xf0f0f0f0&x)>>4|(0x0f0f0f0f&x)<<4, x=(0xcccccccc&x)>>2|(0x33333333&x)<<2, x=(0xaaaaaaaa&x)>>1|(0x55555555&x)<<1) *2. Compute the number of ones in an unsigned integer. ANS. #define count_ones(x) (x=(0xaaaaaaaa&x)>>1+(0x55555555&x), x=(0xcccccccc&x)>>2+(0x33333333&x), x=(0xf0f0f0f0&x)>>4+(0x0f0f0f0f&x), x=(0xff00ff00&x)>>8+(0x00ff00ff&x), x=x>>16+(0x0000ffff&x)) 3. Compute the discrete log ofContinue reading… Problmes on Bit Manipulations