Главная страница
Навигация по странице:

  • "МИРЭА

  • Поразрядные операции и их применение

  • Москва

  • СИАОД Практическая №1. Отчет по выполнению практического задания


    Скачать 387.16 Kb.
    НазваниеОтчет по выполнению практического задания
    АнкорСИАОД Практическая №1
    Дата13.10.2022
    Размер387.16 Kb.
    Формат файлаdocx
    Имя файлаСИАОД Практическая №1.docx
    ТипОтчет
    #732794




    МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

    Федеральное государственное бюджетное образовательное учреждение высшего образования

    "МИРЭА - Российский технологический университет"
    РТУ МИРЭА






    Отчет по выполнению практического задания №1

    Поразрядные операции и их применение

    Дисциплина Структуры и алгоритмы обработки данных














    Москва 202

    Цель.

    • Получить навыки применения поразрядных операций в алгоритмах.

    Задание 1.
      1. Постановка задачи


    Выполнить упражнения по применению битовых операций по изменению значений битов в ячейке оперативной памяти, созданию маски для изменения значения ячейки. Создание выражения, содержащего поразрядные операции, для выполнения определенной операции над значением ячейки

    Вариант 9.



    1

    Номер бита

    2

    Номер бита

    3

    множитель

    4

    делитель

    5

    Задание для выражения


    11


    0-ый, 11-ый,
    3-ый


    Четыре

    старших бита


    4


    4

    Обнулить n-ый бит в 1, используя маску пункта 2


    2.1 Решение задачи. Пункт 1


    Определить переменную целого типа, присвоить ей значение, используя константу в шестнадцатеричной системе счисления.

    Разработать оператор присваивания и его выражение, значения переменной в значение 1, используя соответствующую маску и поразрядную операцию.

    long long int number = 0x412; // ... 0100 0001 0010

    long long int mask = 0x809; // ... 1000 0000 1001
    int bit_disjunction(int a, int b) { // функция для поразрядной дизъюнкции

    return a | b;

    }


    Код реализации алгоритма

    Рисунок 1 – Код функции, реализующей поразрядную дизъюнкцию





    Рисунок 2 –Код функции main

    Тестирование алгоритма




    Рисунок 3 – Тестирование алгоритма задания 1

    2.2 Решение задачи. Пункт 2


    Определить переменную целого типа.

    Разработать оператор присваивания и его выражение, которое обнуляет 4 старших бита исходного значения переменной, используя соответствующую маску и поразрядную операцию. Значение в переменную вводится с клавиатуры.

    long long int number2;

    long long int mask2 = 0x0FFF; // 0000 1111 1111 1111
    int bit_conjunction(int a, int b) { // функция для поразрядной конъюнкции

    return a & b;

    }



    Код реализации алгоритма


    Рисунок 4 – Код функции, реализующей поразрядную конъюнкцию



    Рисунок 5 – Код функции main

    Тестирование алгоритма




    Рисунок 6 – Тестирование алгоритма задания 2

    2.3 Решение задачи. Пункт 3


    Определить переменную целого типа.

    Разработать оператор присваивания и выражение, которое умножает значение переменной на 4, используя соответствующую поразрядную операцию. Изменяемое число вводится с клавиатуры.

    int multiplication(int a, int b) { // функция для побитового сдвига влево

    return a << b;

    }



    Код реализации алгоритма




    Рисунок 7 – Код функции, реализующей побитовый сдвиг влево





    Рисунок 8 –Код функции main


    Тестирование алгоритма




    Рисунок 9 – Тестирование алгоритма задания 3

    2.4 Решение задачи. Пункт 4


    Определить переменную целого типа.

    Разработать оператор присваивания и выражение, которое делит значение переменной на 4, используя соответствующую поразрядную операцию. Изменяемое число вводится с клавиатуры.

    int division(int a, int b) { // функция для побитового сдвига вправо

    return a >> b;

    }



    Код реализации алгоритма




    Рисунок 10 – Код функции, реализующей побитовый сдвиг влево



    Рисунок 11 – Код функции main

    Тестирование алгоритма




    Рисунок 12 – Тестирование алгоритма задания 4

    2.5 Решение задачи. Пункт 5


    Определить переменную целого типа.

    Обнулить n-ый бит в 1, используя маску пункта 2. Разработать оператор присваивания и выражение, в котором используются только поразрядные операции. В выражении используется маска – переменная.

    long long int mask5 = 0x01;

    mask5 = mask5 << n;

    mask5 = mask5;

    int bit_conjunction(int a, int b) { // функция для поразрядной конъюнкции

    return a & b;

    }



    Код реализации алгоритма




    Рисунок 13 – Код функции main

    Тестирование алгоритма




    Рисунок 14 – Тестирование алгоритма задания 5


    написать администратору сайта