#include <stdio.h>
#include <stdint.h>
typedef struct {
unsigned short reg;
} ConfigRegister;
typedef union {
unsigned short value;
struct {
uint8_t enable : 1;
uint8_t mode : 1;
uint8_t priority : 2;
uint16_t reserved : 12;
} bits;
} TRegister;
int validate_config(ConfigRegister *cfg) {
// Write logic using pointer access
TRegister reg;
reg.value = cfg->reg;
if(reg.bits.enable == 0) {
return 0;
}
if(reg.bits.mode == 3) {
return 0;
}
if(reg.bits.reserved != 0){
return 0;
}
return 1;
}
int main() {
ConfigRegister cfg;
scanf("%hx", &cfg.reg);
int result = validate_config(&cfg);
printf("%d", result);
return 0;
}
Input
0005
Expected Output
1