#include <stdio.h>
#include <stdint.h>
#include <string.h>
void decode_status(uint8_t status_reg) {
char output [100];
(status_reg &(1<<0)) ? strcat(output,"Power On\n") : strcat(output,"");
(status_reg &(1<<1)) ? strcat(output,"Error\n") : strcat(output,"");
(status_reg &(1<<2)) ? strcat(output,"Tx Ready\n") : strcat(output,"");
(status_reg &(1<<3)) ? strcat(output,"Rx Ready\n") : strcat(output,"");
(status_reg &(1<<4)) ? strcat(output,"Overheat\n") : strcat(output,"");
(status_reg &(1<<5)) ? strcat(output,"Undervoltage\n") : strcat(output,"");
(status_reg &(1<<6)) ? strcat(output,"Timeout\n") : strcat(output,"");
(status_reg &(1<<7)) ? strcat(output,"Reserved\n") : strcat(output,"");
printf("%s", output);
}
int main() {
uint8_t reg;
scanf("%hhu", ®);
decode_status(reg);
return 0;
}Solving Approach
Input
13
Expected Output
Power On Tx Ready Rx Ready