Что вычисляет функция с битовыми операциями

Опубликовано May 29, 2012 в Манипуляция битами, Разбор примеров кода | 3 коммент.

, ,

Что вычисляет функция с битовыми операциями

Что вычисляет следующая функция?

Подсказка. Операция n & (n-1) уничтожает последнюю единицу в двоичном представлении числа n.

Вопрос. Нужно ли изменять реализацию функции (и, если нужно, – то как), если ее заголовок переделать на

int F(int & n)?

int F(int n)
 {
	 if (n == 0)
		return 0;
         else
		return 1 + F(n & (n-1));
 }

Автор публикации: