Visual Studio Создать поле. Изменить значение уровня доступности (защищено) в «Быстрых действиях» -> GenerateField

Я думаю, что метод Брайана Кернигана тоже будет полезен ... Он проходит через столько итераций, сколько есть битов. Поэтому, если у нас есть 32-битное слово с набором только высоких бит, он будет проходить один раз через цикл.

int countSetBits(unsigned int n) { 
    unsigned int n; // count the number of bits set in n
    unsigned int c; // c accumulates the total bits set in n
    for (c=0;n>0;n=n&(n-1)) c++; 
    return c; 
}

Опубликовано в 1988 году, на языке программирования C 2nd Ed. (Брайан У. Керниган и Деннис М. Ричи) упоминает об этом в упражнении 2-9. 19 апреля 2006 года Дон Кнут указал мне, что этот метод «впервые был опубликован Петром Вегнером в CACM 3 (1960), 322. (Также был обнаружен независимо Дерриком Лемером и опубликован в 1964 году в книге под редакцией Беккенбаха)».

blockquote>

0
задан user3656537 2 January 2019 в 08:34
поделиться