Вывод подсчитанного количества
На этом последнем этапе мы улучшим нашу программу по подсчету битов, чтобы получить более детальный вывод и продемонстрировать различные способы вывода количества установленных битов.
Изменим файл bit_counter.c
, чтобы добавить более полный вывод:
cd ~/project
nano bit_counter.c
Обновите код следующей реализацией:
#include <stdio.h>
// Function to count set bits using bitwise AND operation
int countSetBits(int number) {
int count = 0;
while (number) {
count += number & 1;
number >>= 1;
}
return count;
}
int main() {
int number;
// Prompt the user to enter an integer
printf("Enter an integer: ");
scanf("%d", &number);
// Count the number of set bits
int setBitCount = countSetBits(number);
// Print the count in multiple formats
printf("Decimal Number: %d\n", number);
printf("Binary Representation: ");
// Print binary representation
for (int i = 31; i >= 0; i--) {
int bit = (number >> i) & 1;
printf("%d", bit);
}
printf("\n");
// Print set bit count results
printf("Number of Set Bits: %d\n", setBitCount);
printf("Set Bit Percentage: %.2f%%\n",
(float)setBitCount / 32 * 100);
return 0;
}
Скомпилируйте и запустите программу:
gcc bit_counter.c -o bit_counter
./bit_counter
Пример вывода:
Enter an integer: 42
Decimal Number: 42
Binary Representation: 00000000000000000000000000101010
Number of Set Bits: 3
Set Bit Percentage: 9.38%
Пояснение к коду:
- Добавлен вывод двоичного представления
- Включен подсчет процента установленных битов
- Использованы побитовые операции для извлечения отдельных битов
- Отформатирован вывод для предоставления нескольких аспектов подсчета битов
Теперь программа предоставляет полное представление о битовом составе целого числа, показывая:
- Десятичное значение
- Полное 32-битное двоичное представление
- Общее количество установленных битов
- Процент установленных битов