Подсчет нулей в двоичном числе с помощью C++

Чтобы подсчитать количество нулей в двоичном числе в C++, можно использовать несколько методов. Вот несколько подходов:

  1. Преобразование в строку: преобразуйте двоичное число в строку и перебирайте каждый символ, считая вхождения ‘0’.
#include <iostream>
#include <string>
int countZerosInBinary(int num) {
    std::string binary = std::bitset<32>(num).to_string(); // Convert to binary string
    int count = 0;
    for (char c : binary) {
        if (c == '0') {
            count++;
        }
    }
    return count;
}
int main() {
    int binaryNumber = 101010; // Example binary number
    int zeroCount = countZerosInBinary(binaryNumber);
    std::cout << "Number of zeros in binary number: " << zeroCount << std::endl;
    return 0;
}
  1. Битовые манипуляции: используйте побитовые операции для проверки каждого бита двоичного числа.
#include <iostream>
int countZerosInBinary(int num) {
    int count = 0;
    while (num > 0) {
        if ((num & 1) == 0) {
            count++;
        }
        num >>= 1; // Right shift by 1 bit
    }
    return count;
}
int main() {
    int binaryNumber = 101010; // Example binary number
    int zeroCount = countZerosInBinary(binaryNumber);
    std::cout << "Number of zeros in binary number: " << zeroCount << std::endl;
    return 0;
}
  1. Манипуляции со строками: преобразуйте двоичное число в строку и используйте функции манипуляции со строками для подсчета вхождений «0».
#include <iostream>
#include <string>
int countZerosInBinary(int num) {
    std::string binary = std::bitset<32>(num).to_string(); // Convert to binary string
    int zeroCount = binary.length() - std::count(binary.begin(), binary.end(), '1');

    return zeroCount;
}
int main() {
    int binaryNumber = 101010; // Example binary number
    int zeroCount = countZerosInBinary(binaryNumber);
    std::cout << "Number of zeros in binary number: " << zeroCount << std::endl;
    return 0;
}