Чтобы подсчитать количество нулей в двоичном числе в C++, можно использовать несколько методов. Вот несколько подходов:
- Преобразование в строку: преобразуйте двоичное число в строку и перебирайте каждый символ, считая вхождения ‘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;
}
- Битовые манипуляции: используйте побитовые операции для проверки каждого бита двоичного числа.
#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;
}
- Манипуляции со строками: преобразуйте двоичное число в строку и используйте функции манипуляции со строками для подсчета вхождений «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;
}