All submissions

Validate Configuration Register Layout

Code

#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;
}

Solving Approach

 

 

 

Loading...

Input

0005

Expected Output

1