#include <stdio.h>
typedef union {
unsigned char reg;
struct {
unsigned char enable : 1;
unsigned char mode : 1;
unsigned char priority : 2;
unsigned char reserved : 4;
} bits;
} ControlRegister;
// Write your logic here
int validate_register(ControlRegister *ctrl) {
int result = 0;
// validate
if(ctrl->bits.enable && ctrl->bits.priority <= 2 && ctrl->bits.reserved == 0)
{
result = 1;
}
return result;
}
int main() {
ControlRegister ctrl;
scanf("%hhx", &ctrl.reg);
int result = validate_register(&ctrl);
printf("%d", result);
return 0;
}
/*
Plan:
- check bit 0
- check bit (2 to 3) -> must be <= 2
- check bits (4 -7) -> must be 0
struct inside of union will give me the bit fields
*/
Input
05
Expected Output
1