السلام عليكم
هذا التمرين منقول من الفريق العربي للبرمجة ولم أستطع فهمه وأظن أن له علاقة بالـ الإلكترونيك وبالذواكر أو IC فهل هناك أحد يفهمنا هذه الطريقة أو مع بعض التمرينات الصغيرة لفهم أكثر والله يثبت أجركم في هذا الشهر
وهل هناكدروس على هذا النوع من الرياضيات وجزاكم الله خيرا
التمرين
ماهي أفضل طريقة من أجل عد الواحدات في عدد يتكون من 32 بت؟
مثلا 10 تحتوي على واحدتين لأنها تكتب 1010 ...
الحل
x -= ((x >> 1) & 0x55555555);
x = (((x >> 2) & 0x33333333) + (x & 0x33333333));
x = (((x >> 4) + x) & 0x0f0f0f0f);
x += (x >> 8);
x += (x >> 16);
return(x & 0x0000003f);
