191. Number of 1 Bits

 

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).

For example, the 32-bit integer ’11' has binary representation

00000000000000000000000000001011

so the function should return 3.

 

 

191. Количество единичных битов

 

Напишите функцию, которая в беззнаковом целом числе вычисляет количество 1-битов (вес Хемминга).

Например, в 32-битовом целом числе ’11', имеющем бинарное представление

00000000000000000000000000001011

имеется три единичных бита. Функция должна вернуть 3.

 

class Solution {

public:

  int hammingWeight(uint32_t n) {

       

  }

};

 

 

РЕШЕНИЕ

циклы

 

Анализ алгоритма

Подсчитываем количество единиц в битовом представлении n.

 

Реализация алгоритма

 

class Solution

{

public:

  int hammingWeight(uint32_t n)

  {

    int res = 0;

 

В цикле делим n на 2 пока n > 0. Подсчитываем сумму битов.

 

    while(n > 0)

    {

      res = res + n % 2;

      n /= 2;

    }

    return res;

  }

};