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