#include <stdio.h>
#include <stdint.h>
typedef union {
struct {
uint8_t enable : 1;
uint8_t mode : 2;
uint8_t interrupt : 1;
uint8_t reserved : 4;
} bits;
uint8_t reg;
} ControlRegister;
int main() {
uint8_t e, m, i;
scanf("%hhu %hhu %hhu", &e, &m, &i);
ControlRegister cr;
cr.reg = 0;
cr.bits.enable = e & 1;
cr.bits.mode = m & 3;
cr.bits.interrupt = i & 1;
cr.bits.reserved = 0;
printf("%u\n", cr.reg);
return 0;
}enable, mode, interrupt.ControlRegister union variable.enable → bit 0mode → bits 1–2interrupt → bit 3reg value (the 8-bit register).
Input
1 2 1
Expected Output
13