int get_ones_count(int x)
{
x = (x & 0x55555555) + ((x & 0xAAAAAAAA) >> 1);
x = (x & 0x33333333) + ((x & 0xCCCCCCCC) >> 2);
x = (x & 0x0F0F0F0F) + ((x & 0xF0F0F0F0) >> 4);
x = (x & 0x00FF00FF) + ((x & 0xFF00FF00) >> 8);
x = (x & 0x0000FFFF) + ((x & 0xFFFF0000) >> 16);
return x;
}
Красив ли данный код? Почему?
Вообще интересно почитать мысли на тему красивый/не красивый код.
p.s. По-моему мнению код должен быть понятный.
p.p.s. Данный код вычисляет количество единичек в двоичной записи числа.
{
x = (x & 0x55555555) + ((x & 0xAAAAAAAA) >> 1);
x = (x & 0x33333333) + ((x & 0xCCCCCCCC) >> 2);
x = (x & 0x0F0F0F0F) + ((x & 0xF0F0F0F0) >> 4);
x = (x & 0x00FF00FF) + ((x & 0xFF00FF00) >> 8);
x = (x & 0x0000FFFF) + ((x & 0xFFFF0000) >> 16);
return x;
}
Красив ли данный код? Почему?
Вообще интересно почитать мысли на тему красивый/не красивый код.
p.s. По-моему мнению код должен быть понятный.
p.p.s. Данный код вычисляет количество единичек в двоичной записи числа.