Imprimir a Contagem
Nesta etapa final, vamos aprimorar nosso programa de contagem de bits para fornecer uma saída mais detalhada e demonstrar diferentes maneiras de imprimir a contagem de bits definidos.
Vamos modificar o arquivo bit_counter.c para adicionar impressão mais abrangente:
cd ~/project
nano bit_counter.c
Atualize o código com a seguinte implementação:
#include <stdio.h>
// Função para contar bits definidos usando a operação AND bit a bit
int countSetBits(int number) {
int count = 0;
while (number) {
count += number & 1;
number >>= 1;
}
return count;
}
int main() {
int number;
// Solicita ao usuário para inserir um inteiro
printf("Digite um inteiro: ");
scanf("%d", &number);
// Conta o número de bits definidos
int setBitCount = countSetBits(number);
// Imprime a contagem em múltiplos formatos
printf("Número Decimal: %d\n", number);
printf("Representação Binária: ");
// Imprime a representação binária
for (int i = 31; i >= 0; i--) {
int bit = (number >> i) & 1;
printf("%d", bit);
}
printf("\n");
// Imprime os resultados da contagem de bits definidos
printf("Número de Bits Definidos: %d\n", setBitCount);
printf("Porcentagem de Bits Definidos: %.2f%%\n",
(float)setBitCount / 32 * 100);
return 0;
}
Compile e execute o programa:
gcc bit_counter.c -o bit_counter
./bit_counter
Saída de exemplo:
Digite um inteiro: 42
Número Decimal: 42
Representação Binária: 00000000000000000000000000101010
Número de Bits Definidos: 3
Porcentagem de Bits Definidos: 9.38%
Explicação do código:
- Adicionada a impressão da representação binária
- Incluída o cálculo da porcentagem de bits definidos
- Usadas operações bit a bit para extrair bits individuais
- Saída formatada para fornecer múltiplas perspectivas sobre a contagem de bits
O programa agora oferece uma visão abrangente da composição de bits do inteiro, mostrando:
- Valor decimal
- Representação binária completa de 32 bits
- Número total de bits definidos
- Porcentagem de bits definidos