#include <stdio.h>
#include <stdint.h>
void decode_status(uint8_t status_reg) {
// Your logic here
char str[8][15]={"Power On",
"Error",
"Tx Ready",
"Rx Ready",
"Overheat",
"Undervoltage",
"Timeout",
"Reserved"};
uint8_t arr[7]={0};
uint8_t i = 0;
uint8_t du = 0;
while(status_reg / 2 != 0)
{
du = status_reg % 2;
status_reg = status_reg / 2 ;
arr[i] = du ;
i++;
}
arr[i++] = 1;
for(uint8_t j = 0 ; j < 8; j++)
{
if(arr[j] == 1)
{
printf("%s\n",str[j]);
}
}
}
int main() {
uint8_t reg;
scanf("%hhu", ®);
decode_status(reg);
return 0;
}Solving Approach
Input
13
Expected Output
Power On Tx Ready Rx Ready