#include <stdio.h>
#include <stdint.h>
// Print 8-bit or 16-bit binary with leading 0s
void print_binary(uint16_t val) {
int bits = (val <= 0xFF) ? 8 : 16;
for (int i = bits - 1; i >= 0; i--) {
putchar((val & (1 << i)) ? '1' : '0');
}
}
int main() {
uint16_t val;
scanf("%hu", &val);
print_binary(val);
return 0;
}
Why Print Binary?
- Debugging register configurations
- Visualizing bit fields
- Validating user logic in bit manipulations
Logic Summary
- Decide bit-width (8 or 16)
- Loop from MSB to LSB
- Use bitmask and shift to print '1' or '0'