#include <iostream>
#include <cstdint>
using namespace std;
// Define Reg8 class here
class Reg8
{
public:
Reg8() : reg_val(0)
{
}
~Reg8()
{
}
void write(uint8_t v)
{
reg_val = v;
return;
}
uint8_t read()
{
return reg_val;
}
void setBit(int bit)
{
if (bit > 7 || bit < 0)
{
// print error
return;
}
reg_val |= (1u << bit);
return;
}
void clearBit(int bit)
{
if (bit > 7 || bit < 0)
{
// print error
return;
}
reg_val &= ~(1u << bit);
return;
}
private:
uint8_t reg_val;
};
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