#include <stdio.h> #include<stdint.h> typedef union { uint16_t reg; struct { uint16_t Enable : 1; // Bit 0 uint16_t Mode : 1; // Bit 1 uint16_t Priority : 2; // Bits 2–3 uint16_t Reserved : 12; // Bits 4–15 } bits; } ConfigRegister; int validate_config(ConfigRegister *cfg) { // Write logic using pointer access if (cfg->bits.Enable == 1 && cfg->bits.Priority != 0x3 && cfg->bits.Reserved == 0) { return 1; // valid } return 0; // invalid } 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