Mostrar el recuento
En este último paso, mejoraremos nuestro programa de conteo de bits para proporcionar una salida más detallada y demostrar diferentes formas de mostrar el recuento de bits activados.
Modifiquemos el archivo bit_counter.c
para agregar una impresión más completa:
cd ~/project
nano bit_counter.c
Actualicemos el código con la siguiente implementación:
#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;
}
Compile y ejecute el programa:
gcc bit_counter.c -o bit_counter
./bit_counter
Ejemplo de salida:
Enter an integer: 42
Decimal Number: 42
Binary Representation: 00000000000000000000000000101010
Number of Set Bits: 3
Set Bit Percentage: 9.38%
Explicación del código:
- Se agregó la impresión de la representación binaria
- Se incluyó el cálculo del porcentaje de bits activados
- Se utilizaron operaciones a nivel de bits para extraer bits individuales
- Se formateó la salida para proporcionar múltiples perspectivas sobre el recuento de bits
El programa ahora ofrece una vista completa de la composición de bits del entero, mostrando:
- Valor decimal
- Representación binaria de 32 bits completa
- Número total de bits activados
- Porcentaje de bits activados