Register Overlay byte and bitfield

#include <iostream>
#include <cstdint>
using namespace std;

// your code here: define a union Reg with uint8_t raw and bitfields (en:1, mode:3, reserved:4)
union Reg {
   uint8_t raw;
   struct bits {
      uint8_t en:1;
      uint8_t mode:3;
      uint8_t reserved:4;
   } bits;
};
int main() {
   int val;
   cin >> val;
   Reg r;
   r.raw = val;
   cout << "en=" << (unsigned)r.bits.en << " mode=" << (unsigned)r.bits.mode;
   return 0;
}
Upvote
Downvote
Loading...

Input

13

Expected Output

en=1 mode=6