Register Type Aliases

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

// Type aliases for register sizes
using Reg8  = uint8_t;
using Reg16 = uint16_t;
using Reg32 = uint32_t;

int main() {
    uint64_t raw8, raw16, raw32;
    cin >> raw8 >> raw16 >> raw32;

    // Store values in fixed-width register types (overflow allowed)
    Reg8  r8  = static_cast<Reg8>(raw8);
    Reg16 r16 = static_cast<Reg16>(raw16);
    Reg32 r32 = static_cast<Reg32>(raw32);

    // Cast to wider unsigned types to ensure numeric output
    cout << "R8="  << static_cast<uint32_t>(r8)
         << " R16=" << static_cast<uint32_t>(r16)
         << " R32=" << static_cast<uint32_t>(r32);

    return 0;
}

Solving Approach

 

 

 

 

 

Upvote
Downvote
Loading...

Input

255 12345 987654321

Expected Output

R8=255 R16=12345 R32=987654321