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