on executing the code : #include<iostream> using namespace std; int main() { int x=0x40000000; x = (x & 0x55555555) + ((x >> 1) & 0x55555555);
cout<<x<<endl; return 0; } OUTPUT=1073741824 ans should be 1 i suppose..?? On Tue, Jul 12, 2011 at 1:18 AM, Dave <dave_and_da...@juno.com> wrote: > @SkRiPt: Yes. > > Dave > > On Jul 11, 2:43 pm, SkRiPt KiDdIe <anuragmsi...@gmail.com> wrote: > > are you saying that x finally contains the number of bits that are set to > > 1..?? > > > > > > > > On Tue, Jul 12, 2011 at 1:09 AM, Dave <dave_and_da...@juno.com> wrote: > > > @rShetty: Ask a question. What do you need to know? > > > > > Dave > > > > > On Jul 11, 1:26 pm, rShetty <rajeevr...@gmail.com> wrote: > > > > Some more Explanation of the working would be helpful > > > > > > Thank You .. > > > > > > On Jul 11, 11:11 pm, Dave <dave_and_da...@juno.com> wrote: > > > > > > > Assuming that the integer is 32 bits, this is pretty good: > > > > > > > x = (x & 0x55555555) + ((x >> 1) & 0x55555555); > > > > > x = (x & 0x33333333) + ((x >> 2) & 0x33333333); > > > > > x = (x & 0x0F0F0F0F) + ((x >> 4) & 0x0F0F0F0F); > > > > > x = (x & 0x00FF00FF) + ((x >> 8) & 0x00FF00FF); > > > > > x = (x & 0x0000FFFF) + ((x >> 16) & 0x0000FFFF); > > > > > > > Notice that the hex constants are respectively alternate bits, > > > > > alternate pairs of bits, alternate groups of four bits, alternate > > > > > bytes, and the low-order half of the int. > > > > > > > The first statement determines the number of one-bits in each pair > of > > > > > bits. The second statement adds adjacent pairs of bits to get the > > > > > number of bits in each group of four bits. Then these are added to > get > > > > > the number of bits in each byte, short int, and finally in the > whole > > > > > int. > > > > > > > Dave > > > > > > > On Jul 11, 12:44 pm, rShetty <rajeevr...@gmail.com> wrote: > > > > > > > > What is the most efficient algorithm to count the number of bits > in > > > an > > > > > > unsigned integer ? > > > > > > Explain your approach to the problem ?- Hide quoted text - > > > > > > - Show quoted text - > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "Algorithm Geeks" group. > > > To post to this group, send email to algogeeks@googlegroups.com. > > > To unsubscribe from this group, send email to > > > algogeeks+unsubscr...@googlegroups.com. > > > For more options, visit this group at > > >http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text - > > > > - Show quoted text - > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.