Register Bitwise Operations

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

class Reg32{
private: 
    uint32_t val;
public:
    Reg32(uint32_t v) : val(v) {}

    Reg32& operator|=(uint32_t rhs) {
        this->val |= rhs;
        return *this;
    }
    
    Reg32& operator&=(uint32_t rhs) {
        this->val &= rhs;
        return *this;
    }

    operator uint32_t() const{
        return this->val;
    }

};

int main() {
    uint32_t init, orVal, andVal;
    cin >> init >> orVal >> andVal;

    Reg32 reg(init);

    reg |= orVal;     // bitwise OR
    reg &= andVal;    // bitwise AND

    cout << (uint32_t)reg;

    return 0;
}

Cool

 

 

 

 

 

Upvote
Downvote
Loading...

Input

8 5 14

Expected Output

12