#include <stdio.h> #include <stdint.h> #define Power On 0 #define Error 1 #define Tx Ready 2 #define Rx Ready 3 #define Overheat 4 #define Undervoltage 5 #define Timeout 6 #define Reserved 7 const char* bit_to_string(int value) { switch (value) { case 0 : return "Power On" ; case 1 : return "Error" ; case 2 : return "Tx Ready" ; case 3 : return "Rx Ready" ; case 4 : return "Overheat" ; case 5 : return "Undervoltage" ; case 6 : return "Timeout" ; case 7 : return "Reserved" ; default: return "UNKNOWN"; } } void decode_status(uint8_t status_reg) { // Your logic here for (int i = 0 ; i < 8 ; i ++ ){ if (status_reg & (1 << i)) { printf ( "%s\n" , bit_to_string(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