#include <stdio.h> #include <stdint.h> char flag_meanings[8][16] = { {"Power On"}, {"Error"}, {"Tx Ready"}, {"Rx Ready"}, {"Overheat"}, {"Undervoltage"}, {"Timeout"}, {"Reserved"}, }; void decode_status(uint8_t status_reg) { for (uint8_t bit = 0; bit < 8; bit++) { if ((status_reg & (1 << bit)) != 0) { printf("%s\n", flag_meanings[bit]); } } } int main() { uint8_t reg; scanf("%hhu", ®); decode_status(reg); return 0; }
Test Cases
Test Results
Input
13
Expected Output
Power On Tx Ready Rx Ready