#include #include #define N_BITS 32 // extract the nth bit from a value , assuming lsb is bit 0 // Assume n is 4 // 76543210 // * // xxxXxxxx >> 4 // 0000xxxX & // 00000001 // 0000000X // extract the nth bit from a value, assuming lsb is bit 0 int get_nth_bit(uint32_t value, int n) { uint32_t result = value >> n; result = result & 1; return result; } // print the value in binary void print_bits(uint32_t value) { // print bits from most significant to least significant for (int i = N_BITS - 1; i >= 0; i--) { int bit = get_nth_bit(value, i); printf("%d", bit); } } int main(void){ print_bits(0xFFAA1201); printf("\n"); return 0; }