#include <iostream> #include <stdio.h> using namespace std; #define BIT(n) (0x1<<n) template <typename T> T set_bit (T value, T bit_n) { value |= BIT(bit_n); return value; } template <typename T> T clear_bit (T value, T bit_n) { value &= ~BIT(bit_n); return value; } int main() { int a = 0; cout << "Please input a hex to set:" << endl; scanf("%x", &a); printf ("before: a = 0x%x ", a); printf ("after : a = 0x%x ", set_bit(a, 3)); cout << "Please input a hex to clear:" << endl; scanf("%x", &a); printf ("before: a = 0x%x ", a); printf ("after : a = 0x%x ", clear_bit(a, 3)); return 0; } }