#include <stdio.h> typedef struct { unsigned short reg; } ConfigRegister; int validate_config(ConfigRegister *cfg) { unsigned short value = cfg->reg; // pointer access /* Bit 0 must be 1 (Enable ON) */ if ((value & (1 << 0)) == 0) return 0; /* Bits 2–3 (Priority) must NOT be 11 */ unsigned short priority = (value >> 2) & 0x3; if (priority == 3) return 0; /* Bits 4–15 must all be 0 */ if ((value & 0xFFF0) != 0) return 0; return 1; // valid configuration } 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