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