#include using namespace std; /* Exercises: * https://github.com/triffon/ip-2021-22/blob/master/practicum/6/week7/%D0%9F%D0%BE%D0%B1%D0%B8%D1%82%D0%BE%D0%B2%D0%B8%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8%20%D0%B8%20%D0%B1%D1%80%D0%BE%D0%B9%D0%BD%D0%B8%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8.pdf */ // Задача първа: // Да се реализира функция getBitwiseRepresentation(int n); която извежда на // стандартния изход двоичното представяне на числото. void getBitwiseRepresentation(int n) { for (int i = 31; i >= 0; i--) { cout << !!(n & (1 << i)); } cout << endl; } void ex1() { int n; cin >> n; getBitwiseRepresentation(n); } // Задача втора: // Да се напише функция flipFourthBit(int n); която обръща четвъртия бит на // числото n. int flipFourthBit(int n) { return n ^ 8; } void ex2() { int n; cin >> n; cout << flipFourthBit(n) << endl; } // Задача трета: // Напишете функция, която приема число и връща броя на нулите в двоичния му // запис. int zeroesCount(int n) { int count = 0; for (int i = 31; i >= 0; i--) { count += !(n & (1 << i)); } return count; } void ex3() { int n; cin >> n; cout << zeroesCount(n) << endl; } // Задача четвърта: // Да се напише функция setBit(int n, int bitPosition, bool newBitValue); която // променя бита на подадената позиция. int setBit(int n, int bitPosition, bool newBitValue) { if (!(n >> bitPosition ^ newBitValue)) return n; return n ^ (1 << bitPosition); } void ex4() { int n, position, newBit; cin >> n >> position >> newBit; cout << setBit(n, position, newBit) << endl; } // Задача пета*: Имаме масив от цели числа с дължина n, където 0 ≤ n ≤ 30 // Да се изведат всички подмножества на n. // void printSubSets(int nums[], int len) { // for (int i = 1; i <= len; i <<= 1) { // // for (int j = 0; ) // } // } // Задача шеста: // Да се напише функция която приема число в десетична бройна система и го // превръща в число от произволна бройна система, подадена като аргумент на // функцията. int tenToNBase(int num, int baseN) { } int main() { ex4(); }