Рубрики

C / C ++ Программа для подсчета набора битов в целое число

Напишите эффективную программу для подсчета числа 1 с в двоичном представлении целого числа.

Примеры :

Input : n = 6
Output : 2
Binary representation of 6 is 110 and has 2 set bits

Input : n = 13
Output : 3
Binary representation of 11 is 1101 and has 3 set bits

#include <stdio.h>

  
/ * Функция, чтобы получить не из установленных битов в двоичном

   представление положительного целого числа n * /

unsigned int countSetBits(unsigned int n)

{

    unsigned int count = 0;

    while (n) {

        count += n & 1;

        n >>= 1;

    }

    return count;

}

  
/ * Программа для тестирования функции countSetBits * /

int main()

{

    int i = 9;

    printf("%d", countSetBits(i));

    return 0;

}

Выход:

2

Рекурсивный подход:

C ++

// Cpp реализация рекурсивного
// подход к поиску номера
// из установленных битов в двоичном представлении
// из положительного целого числа n
#include <bits/stdc++.h>

using namespace std;

  
// рекурсивная функция для подсчета установленных бит

int countSetBits(int n)

{

    // базовый вариант

    if (n == 0)

        return 0;

  

    else

  

        // если последний бит установлен, добавить 1, иначе добавить 0

        return (n & 1) + countSetBits(n >> 1);

}

  
// код драйвера

int main()

{

    // получить значение от пользователя

    int n = 9;

  

    // вызов функции

    cout << countSetBits(n);

  

    return 0;

}

  
// Этот код предоставлен Раджем.

Выход:

2

Пожалуйста, обратитесь к полной статье о количестве битов в целых числах для получения более подробной информации!

Рекомендуемые посты:

C / C ++ Программа для подсчета набора битов в целое число

0.00 (0%) 0 votes