#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define N 1024
int main()
{
char buff[N], bit[sizeof(unsigned int) * 8];
unsigned int n;
int i, j, bit0, bit1;
assert(sizeof(unsigned int) == 4);
printf("input an integer: ");
fgets(buff, N, stdin);
n = atoi(buff);
for (i = sizeof(unsigned int) * 8 - 1; i >= 0; --i) {
if (n % 2 == 1)
bit[i] = 1;
else
bit[i] = 0;
n = n / 2;
}
j = 0;
for (i = 0; i < sizeof(unsigned int) * 8; i++) {
printf("%d", bit[i]);
if (++j > 3) {
putchar(' ');
j = 0;
}
}
putchar('\n');
for (i = 0, bit0 = bit1 = 0; i < sizeof(unsigned int) * 8; i++) {
if (bit[i])
bit1++;
else
bit0++;
}
printf("bit = 0: %d\n", bit0);
printf("bit = 1: %d\n", bit1);
return 0;
}
/* end */