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