Используйте битовую маску, чтобы проверить, установлен ли бит.Для создания битовой маски можно использовать сдвиг битов:
1 << 0 // shift 1 0 bits to the left: 0b00000001
1 << 1 // shift 1 0 bits to the left: 0b00000010
1 << 2 // shift 1 0 bits to the left: 0b00000100
1 << 3 // shift 1 0 bits to the left: 0b00001000
1 << 4 // shift 1 0 bits to the left: 0b00010000
1 << 5 // shift 1 0 bits to the left: 0b00100000
1 << 6 // shift 1 0 bits to the left: 0b01000000
1 << 7 // shift 1 0 bits to the left: 0b10000000
Затем вы можете использовать эти значения, чтобы проверить, установлен ли определенный бит с помощью оператора побитового и:
value & (1 << 4) // evaluates to true if bit 5 is set.
// counted 1-based from the right.
Чтобы использовать это для вывода 8-битного значения:
char unsigned value = 42; // an 8-bit value
for (int bit = 8; bit; --bit) { // count from 8 to 1
putchar(value & (1 << (bit - 1)) ? '1' : '0');
}