#include <stdio.h>
#include <stdint.h>
#define CHK(reg,pos) ((reg>>pos)&1u)
void decode_status(uint8_t status_reg) {
if (CHK(status_reg,0)) {
puts("Power On");
}
if (CHK(status_reg,1)) {
puts("Error");
}
if (CHK(status_reg,2)) {
puts("Tx Ready");
}
if (CHK(status_reg,3)) {
puts("Rx Ready");
}
if (CHK(status_reg,4)) {
puts("Overheat");
}
if (CHK(status_reg,5)) {
puts("Undervoltage");
}
if (CHK(status_reg,6)) {
puts("Timeout");
}
if (CHK(status_reg,7)) {/
puts("Reserved");
}
}
int main() {
uint8_t reg;
scanf("%hhu", ®);
decode_status(reg);
return 0;
}Solving Approach
Input
13
Expected Output
Power On Tx Ready Rx Ready