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