8-Bit Register Class

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

// Define Reg8 class here
class Reg8
{
private:
    uint8_t regValue;
public:
    Reg8();
    void write(uint8_t v);
    uint8_t read();
    void setBit(int bit);
    void clearBit(int bit);
    ~Reg8();
};

Reg8::Reg8()
{
    this->regValue = 0;
}
void Reg8::write(uint8_t v){
    this->regValue = v;
}

uint8_t Reg8::read(){
    return this->regValue;
}
void Reg8::setBit(int bit){
    this->regValue |= (1 << bit);
}
void Reg8::clearBit(int bit){
    this->regValue &= ~(1 << bit);
}
Reg8::~Reg8()
{
}

int main() {
    int initialValue;
    int bitToSet, bitToClear;

    cin >> initialValue >> bitToSet >> bitToClear;

    Reg8 reg;
    reg.write(static_cast<uint8_t>(initialValue));
    reg.setBit(bitToSet);
    reg.clearBit(bitToClear);

    cout << static_cast<int>(reg.read());
    return 0;
}

Solving Approach

 

 

 

 

Upvote
Downvote
Loading...

Input

10 1 3

Expected Output

2