#include <stdio.h> #include <stdint.h> #define BIT_IS_SET(reg, bit)(((reg) & (1 << (bit))) != 0) void decode_status(uint8_t status_reg) { uint8_t reg = status_reg; if(BIT_IS_SET(reg, 0)){ printf("Power On\n"); } if(BIT_IS_SET(reg, 1)){ printf("Error\n"); } if(BIT_IS_SET(reg, 2)){ printf("Tx Ready\n"); } if(BIT_IS_SET(reg, 3)){ printf("Rx Ready\n"); } if(BIT_IS_SET(reg, 4)){ printf("Overheat\n"); } if(BIT_IS_SET(reg, 5)){ printf("Undervoltage\n"); } if(BIT_IS_SET(reg, 6)){ printf("Timeout\n"); } if(BIT_IS_SET(reg, 7)){ printf("Reserved\n"); } } 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