Написать функцию, указанную в задании, используя только операции над битами (никаких возведений в степень, умножений, делений, сложений, вычитаний и т.п.). Во всех вариантах необходимо менять все биты сразу, а не по одному в цикле. Биты нумеруются с 0 начиная с правого (младшего) бита. Бит с номером p должен меняться.
Обеспечить возможность обработки данных размером 8, 16, 32 и 64 бита.
Написать программу для проверки правильности работы функции. Необходимо проверять корректность введённых значений переменных n и p. Исходное и полученное число выводить в двоичной, десятичной и шестнадцатеричной системах счисления.
Класс bitset не использовать.
Примеры см. в лекции 8.