#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
Input
13
Expected Output
Power On Tx Ready Rx Ready