// print bits from an integer one per line, reverse order #include #define MAXBITS 32 int main(int argc, char *argv[]) { int num; unsigned int rem; int bits[MAXBITS]; int nbits; while (1) { // forever // get the number printf("Integer? "); if (scanf("%d", &num) != 1) break; // extract the digits rem = num; nbits = 0; do { bits[nbits] = rem % 2; nbits++; rem = rem / 2; } while (rem != 0); printf("%d = %08x = ", num, num); for (int i = nbits-1; i >= 0; i--) { printf("%d", bits[i]); } putchar('\n'); } return 0; }