#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 ctrl; // Construct and print register value /*SOLUTION 1*/ /* ctrl.bits.enable = e ; ctrl.bits.mode = m; ctrl.bits.interrupt = i;*/ /*SOLUTION 2*/ ctrl.reg = 0; ctrl.reg |= (e << 0) | (m << 1) | (i<<3) ; //PRINT SAME FOR SOLUTION 1n2 printf("%d",ctrl.reg); return 0; }
Test Cases
Test Results
Input
1 2 1
Expected Output
13