Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <bitset>
- using namespace std; // Подключение пространства имён
- void First() {
- cout << "Установка четырёх старших битов в 1" << endl;
- // Присвоение переменной значения из константы в шестнадцатеричной системе
- unsigned int decimal = 15;
- const int n = 8;
- //int n = 0x85; // в двоичной 10000101
- string binary = bitset<n>(decimal).to_string();
- cout << "Значение переменной в двоичном коде: " << binary << endl;
- // Маска для установки в 1 четырёх старших битов
- unsigned int maska = 240;
- decimal |= maska; // в двоичной 11110000
- string maska2 = bitset<n>(maska).to_string();
- cout << "Значение маски: " << maska2 << endl;
- string result = bitset<n>(decimal).to_string();
- cout << "Значение переменной после преобразований: " << result << endl << endl;
- // Вывод результата
- //cout << "Значение переменной после преобразования: " << n << endl;
- }
- void Second() {
- cout << "Обнуление 9-го, 11-го, 3-го битов" << endl;
- // Определение переменной целого типа
- unsigned int value;
- const int n = 8;
- // Ввод значения с клавиатуры
- cout << "Введите значение переменной: "; cin >> value; //cout << endl;
- string value2 = bitset<n>(value).to_string();
- cout << "Значение переменной в двоичном коде: " << value2 << endl;
- value &= (~((1 << 9) | (1 << 11) | (1 << 3))); // обнуление 9-го, 11-го, 3-го битов
- string result = bitset<n>(value).to_string();
- // Вывод результата
- cout << "Значение переменной после преобразования: " << result << endl << endl;
- }
- void Third() {
- cout << "Умножение значения переменной на 512 с использованием поразрядной операции" << endl;
- // Определение переменной целого типа
- unsigned int value;
- const int n = 16;
- // Ввод значения с клавиатуры
- cout << "Введите значение переменной: "; cin >> value; //cout << endl;
- string value2 = bitset<n>(value).to_string();
- cout << "Значение переменной в двоичном коде: " << value2 << endl;
- // Умножение значения переменной на 512 с использованием поразрядной операции
- value = value << 9; // Сдвиг влево на 9 битов эквивалентен умножению на 2^9 (512)
- string result = bitset<n>(value).to_string();
- // Вывод значения переменной после умножения
- cout << "Значение переменной после умножения на 512: " << result << endl << endl;
- }
- void Fourth() {
- cout << "Деление значения переменной на 512 с использованием поразрядной операции" << endl;
- // Определение переменной целого типа
- unsigned int value;
- const int n = 16;
- // Ввод значения с клавиатуры
- cout << "Введите значение переменной: "; cin >> value; //cout << endl;
- string value2 = bitset<n>(value).to_string();
- cout << "Значение переменной в двоичном коде: " << value2 << endl;
- // Умножение значения переменной на 512 с использованием поразрядной операции
- value = value << 9; // Сдвиг вправо на 9 битов эквивалентен делению на 2^9 (512)
- string result = bitset<n>(value).to_string();
- // Вывод значения переменной после умножения
- cout << "Значение переменной после деления на 512: " << result << endl << endl;
- }
- void Fiveth() {
- cout << "Оператор присваивания с использованием поразрядных операций" << endl;
- // Определение переменной целого типа
- unsigned int value;
- const int n = 8;
- // Инициализация маски (в данном случае единица в младшем разряде)
- int maska = 1;
- string maska2 = bitset<n>(maska).to_string();
- cout << "Значение маски: " << maska2 << endl;
- // Ввод изменяемого числа с клавиатуры
- cout << "Введите значение переменной: "; cin >> value; //cout << endl;
- string value2 = bitset<n>(value).to_string();
- cout << "Значение переменной в двоичном коде: " << value2 << endl;
- // Оператор присваивания с использованием поразрядных операций
- value = n | maska;
- string result = bitset<n>(value).to_string();
- // Вывод результата
- cout << "Значение переменной после преобразования: " << result << endl << endl;
- }
- int main()
- {
- setlocale(0, "");
- First();
- Second();
- Third();
- Fourth();
- Fiveth();
- return 0;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement