#include <stdio.h>
typedef union {
unsigned char reg;
struct {
unsigned char enable : 1; // bit 0
unsigned char mode : 1; // bit 1
unsigned char priority : 2; // bit 2–3
unsigned char reserved : 4; // bit 4–7
} bits;
} Control_Register;
int valid_register(const Control_Register *con_reg) {
return (con_reg->bits.enable == 1) &&
(con_reg->bits.priority <= 2) &&
(con_reg->bits.reserved == 0);
}
int main(void) {
Control_Register con_reg = {0};
scanf("%hhx", &con_reg.reg); // đọc dạng hex, ví dụ 05
printf("%d", valid_register(&con_reg));
return 0;
}
Input
05
Expected Output
1