#include <stdio.h> #include <stdint.h> #define is_bitx_set(x, pos) (!!(x & (1 << pos))) #define REGISTER_BITS_NUMB 8 #define BIT_TO_FLAG_STRING_MAX 13 static const uint8_t bit_mapping[REGISTER_BITS_NUMB][BIT_TO_FLAG_STRING_MAX + 1]= { "Power On", "Error", "Tx Ready", "Rx Ready", "Overheat", "Undervoltage", "Timeout", "Reserved", }; void decode_status(uint8_t status_reg) { // Your logic here for (int i = 0; i < 8; i++) { if (is_bitx_set(status_reg, i)) { printf("%s\n", bit_mapping[i]); } } } 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