#include <stdio.h> #include <stdint.h> const char *str[] = {"Power On", "Error", "Tx Ready", "Rx Ready", "Overheat", "Undervoltage", "Timeout", "Reserved" }; void decode_status(uint8_t status_reg) { // Your logic here uint8_t pos = 0; while(pos < 8){ if( status_reg & (1 << pos)) printf("%s\n", str[pos]); pos++; } } int main() { uint8_t reg; scanf("%hhu", ®); decode_status(reg); return 0; }
Solving Approach
Create an array of strings. If the bit position is set, print the corresponding string from array.
Test Cases
Test Results
Input
13
Expected Output
Power On Tx Ready Rx Ready