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

  • ОТЧЕТ по лабораторной работе № 1 по дисциплине Организация ЭВМ Тема

  • Блок-схема алгоритма Текст программы

  • Пример запуска программы Вывод

  • Отчет. Лабораторная работа №1. Исследование внутреннего представления различных форматов данных


    Скачать 147.5 Kb.
    НазваниеИсследование внутреннего представления различных форматов данных
    АнкорОтчет. Лабораторная работа №1
    Дата15.09.2021
    Размер147.5 Kb.
    Формат файлаdoc
    Имя файлаОтчет. Лабораторная работа №1.doc
    ТипИсследование
    #232594


    МИНОБРНАУКИ РОССИИ

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

    высшего профессионального образования

    «Санкт-Петербургский государственный электротехнический университет

    «ЛЭТИ» им. В.И. Ульянова (Ленина)»

    (СПбГЭТУ)

    кафедра ВТ

    ОТЧЕТ

    по лабораторной работе № 1

    по дисциплине Организация ЭВМ

    Тема: ИССЛЕДОВАНИЕ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ РАЗЛИЧНЫХ ФОРМАТОВ ДАННЫХ

    Вариант 5

    Выполнил: Зыков Александр

    Факультет КТИ

    Группа № 1363

    Преподаватель Монько А.О.

    Оценка ________________________

    Подпись преподавателя __________

    Санкт-Петербург

    2013

    Задание:
    1. Разработать алгоритм ввода с клавиатуры типов данных int и float и показать на экране их внутреннее представление в двоичной системе счисления.

    2. Написать и отладить программу на языке С++, реализующую разработанный алгоритм.

    3. Поменять местами заданные пользователем группы рядом стоящих бит, номера старших разрядов этих групп и количество бит в группе, вводится с клавиатуры.

    Блок-схема алгоритма


    Текст программы

    #include

    #include

    #include

    using namespace std;
    void printBinary(unsigned int var){

    unsigned int mask=1<<31;

    for(int i= 0; i< sizeof(unsigned int)*8; ++i){

    var&mask?cout<<1:cout<<0;

    mask>>= 1;

    }

    }
    void invert(unsigned int arg){

    cout<<"Введите кол-во бит в группе:"<
    int size_group;

    cin>>size_group;

    size_group--;

    cout<<"Введите номер старшего бита в 1 группе:"<
    int bit_1;

    cin>>bit_1;

    cout<<"Введите номер старшего бита в 2 группе:"<
    int bit_2;

    cin>>bit_2;

    if (bit_1
    {

    int temp=bit_1;

    bit_1=bit_2;

    bit_2=temp;

    }
    unsigned int mask_1 = 2, mask_2 = 0;

    mask_1 = mask_1 << size_group;

    mask_1 --;

    mask_2 = mask_1;
    mask_1 = mask_1 << (bit_1-size_group);

    mask_2 = mask_2 << (bit_2-size_group);
    mask_1 = mask_1&arg;

    mask_2 = mask_2&arg;
    unsigned int mask_3 = 0xFFFFFFFFu;

    mask_3 = mask_3 ^ mask_1;

    mask_3 = mask_3 ^ mask_2;
    arg = arg & mask_3;
    mask_1 = mask_1 >> bit_1-bit_2;

    mask_2 = mask_2 << bit_1-bit_2;
    arg = arg | mask_1;

    arg = arg | mask_2;

    cout << "RESULT: \n";

    printBinary(arg);

    }

    int main () {

    setlocale(LC_ALL, "rus");

    cout<<"Введите число (short int)";

    int in1;

    cin>>in1

    union {

    int num; // 2байта

    unsigned int byte4; // 1байт

    } uni1;

    uni1.num = in1;

    printBinary(uni1.byte4);

    cout<
    cout<<"Введите число (float)"<
    float in2;

    cin>>in2;

    union {

    float num; //4 байта

    unsigned int byte4; //4 байта

    } uni2;

    uni2.num = in2;

    printBinary(uni2.byte4);

    cout<
    invert(uni2.byte4);

    cout<
    printBinary(uni2.byte4);

    cout<
    //system("pause");

    cin.get();

    return 0;
    }
    Пример запуска программы



    Вывод

    Были изучены представления различных типов данных в памяти компьютера, а так же способы их вывода и изменения. Теоретические знания были применены на практике



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