#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; }
Test Cases
Test Results
Input
10 1 3
Expected Output
2