Advertisement
Gamerkin

saod 1.1.1

Sep 27th, 2023
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.49 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <bitset>
  4.  
  5. using namespace std; // Подключение пространства имён
  6.  
  7. void First() {
  8.     cout << "Установка четырёх старших битов в 1" << endl;
  9.     // Присвоение переменной значения из константы в шестнадцатеричной системе
  10.     unsigned int decimal = 15;
  11.     const int n = 8;
  12.     //int n = 0x85; // в двоичной 10000101
  13.     string binary = bitset<n>(decimal).to_string();
  14.     cout << "Значение переменной в двоичном коде: " << binary << endl;
  15.  
  16.     // Маска для установки в 1 четырёх старших битов
  17.     unsigned int maska = 240;
  18.     decimal |= maska; // в двоичной 11110000
  19.     string maska2 = bitset<n>(maska).to_string();
  20.     cout << "Значение маски: " << maska2 << endl;
  21.     string result = bitset<n>(decimal).to_string();
  22.     cout << "Значение переменной после преобразований: " << result << endl << endl;
  23.  
  24.     // Вывод результата
  25.     //cout << "Значение переменной после преобразования: " << n << endl;
  26.  
  27. }
  28.  
  29. void Second() {
  30.     cout << "Обнуление 9-го, 11-го, 3-го битов" << endl;
  31.     // Определение переменной целого типа
  32.     unsigned int value;
  33.     const int n = 8;
  34.  
  35.     // Ввод значения с клавиатуры
  36.     cout << "Введите значение переменной: "; cin >> value; //cout << endl;
  37.     string value2 = bitset<n>(value).to_string();
  38.     cout << "Значение переменной в двоичном коде: " << value2 << endl;
  39.     value &= (~((1 << 9) | (1 << 11) | (1 << 3))); // обнуление 9-го, 11-го, 3-го битов
  40.     string result = bitset<n>(value).to_string();
  41.     // Вывод результата          
  42.     cout << "Значение переменной после преобразования: " << result << endl << endl;
  43.  
  44. }
  45.  
  46. void Third() {
  47.     cout << "Умножение значения переменной на 512 с использованием поразрядной операции" << endl;
  48.     // Определение переменной целого типа
  49.     unsigned int value;
  50.     const int n = 16;
  51.  
  52.     // Ввод значения с клавиатуры
  53.     cout << "Введите значение переменной: "; cin >> value; //cout << endl;
  54.     string value2 = bitset<n>(value).to_string();
  55.     cout << "Значение переменной в двоичном коде: " << value2 << endl;
  56.     // Умножение значения переменной на 512 с использованием поразрядной операции
  57.     value = value << 9; // Сдвиг влево на 9 битов эквивалентен умножению на 2^9 (512)
  58.     string result = bitset<n>(value).to_string();
  59.     // Вывод значения переменной после умножения
  60.     cout << "Значение переменной после умножения на 512: " << result << endl << endl;
  61.  
  62. }
  63.  
  64. void Fourth() {
  65.     cout << "Деление значения переменной на 512 с использованием поразрядной операции" << endl;
  66.     // Определение переменной целого типа
  67.     unsigned int value;
  68.     const int n = 16;
  69.  
  70.     // Ввод значения с клавиатуры
  71.     cout << "Введите значение переменной: "; cin >> value; //cout << endl;
  72.     string value2 = bitset<n>(value).to_string();
  73.     cout << "Значение переменной в двоичном коде: " << value2 << endl;
  74.     // Умножение значения переменной на 512 с использованием поразрядной операции
  75.     value = value << 9; // Сдвиг вправо на 9 битов эквивалентен делению на 2^9 (512)
  76.     string result = bitset<n>(value).to_string();
  77.     // Вывод значения переменной после умножения
  78.     cout << "Значение переменной после деления на 512: " << result << endl << endl;
  79. }
  80.  
  81. void Fiveth() {
  82.     cout << "Оператор присваивания с использованием поразрядных операций" << endl;
  83.     // Определение переменной целого типа
  84.     unsigned int value;
  85.     const int n = 8;
  86.  
  87.     // Инициализация маски (в данном случае единица в младшем разряде)
  88.     int maska = 1;
  89.     string maska2 = bitset<n>(maska).to_string();
  90.     cout << "Значение маски: " << maska2 << endl;
  91.     // Ввод изменяемого числа с клавиатуры
  92.     cout << "Введите значение переменной: "; cin >> value; //cout << endl;
  93.     string value2 = bitset<n>(value).to_string();
  94.     cout << "Значение переменной в двоичном коде: " << value2 << endl;
  95.     // Оператор присваивания с использованием поразрядных операций
  96.     value = n | maska;
  97.     string result = bitset<n>(value).to_string();
  98.     // Вывод результата
  99.     cout << "Значение переменной после преобразования: " << result << endl << endl;
  100. }
  101.  
  102.  
  103.  
  104.  
  105. int main()
  106. {  
  107.     setlocale(0, "");
  108.  
  109.     First();
  110.     Second();
  111.     Third();
  112.     Fourth();
  113.     Fiveth();
  114.  
  115.     return 0;
  116.     system("pause");
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement