LINUX.ORG.RU

угарные лабораторки пошли нынче.. впрочем, и студенты тоже.
посчитать количество взведенных бит в байте можно так:

int mask, var=126, ones_count=0;

for(mask = 1; mask <=127; mask <<=1) {
  if( var & mask > 0) {
    ones_count ++;
  }
}
aol ★★★★★
()
Ответ на: комментарий от aol

да, var - это число, в котором считаем количество единиц

aol ★★★★★
()
Ответ на: комментарий от vsrmis

ага, только доработать надо. потому, что int - это не один байт, а четыре. доработай сам ;)

aol ★★★★★
()

А зачем именно циклическим?

int ones(int number) {
    int result = 0;
    do {
        result += number & 1;
    } while(number >>= 1);
    return result;
}
schizoid ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.