#include <stdio.h>
#include <stdint.h>
// Function to decode and print enabled flags
void decodeStatus(uint8_t status_reg) {
const char *flags[] = {
"Power On", // Bit 0
"Error", // Bit 1
"Tx Ready", // Bit 2
"Rx Ready", // Bit 3
"Overheat", // Bit 4
"Undervoltage", // Bit 5
"Timeout", // Bit 6
"Reserved" // Bit 7
};
for (int i = 0; i < 8; i++) {
if (status_reg & (1 << i)) {
printf("%s\n", flags[i]);
}
}
}
int main() {
uint8_t status_reg;
scanf("%hhu", &status_reg);
decodeStatus(status_reg);
return 0;
}
Solving Approach
Input
13
Expected Output
Power On Tx Ready Rx Ready