@mithun : Thanks On Fri, Aug 5, 2011 at 6:37 PM, mithun bs <[email protected]> wrote:
> Hi Rajeev, > > I follow similar approach. The basic logic is swap bits of a pair, then > swap nibbles(2 bits) and then swap (4bits), 8bits and go on. > > So for ex. 0110 1101 1100 0101 > In first step, I swap bits of each pair. So this becomes, > > Input - 0110 1101 1100 0101 > output- 1001 1110 1100 1010 > > In second step, I swap 2bits > > Input - 1001 1110 1100 1010 > output-0110 1011 0011 1010 > > I swap 4 bits now > > Input - 0110 1011 0011 1010 > output-1011 0110 1010 0011 > > Now I swap 8bits > Input - 1011 0110 1010 0011 > output-1010 0011 1011 0110 > > So, now we have the bits in reverse order. > > First step I do this way > x = ((x | 0xAAAA) >> 2) | (x<<2) | 0xAAAA; > Next step similarly > x = ((x | 0xCCCC) >> 4) | (x<<4) | 0xCCCC; > > This is the logic. > Your code does the reverse way. > > Regards, > Mithun > > On Fri, Aug 5, 2011 at 6:04 PM, rShetty <[email protected]> wrote: > >> This is the code to reverse the bits in an unsigned integer . >> Could anyone please explain the logic of this approach ? Thank You !! >> >> #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) >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> >> > > > -- > Mithun.B.S > M:9916775380 > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- Regards Rajeev N B <http://www.opensourcemania.co.cc> "*Winners Don't do Different things , they do things Differently"* -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
