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

  • Введение Цель работы: знакомство с внутренним представлением различных типовданных, используемых компьютером при их обработке. 1. Задание

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


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


    Минобрнауки России

    Федеральное государственное автономное образовательное

    учреждение высшего образования

    «Санкт-Петербургский государственный электротехнический университет им. В.И. Ульянова (Ленина)»

    (СПбГЭТУ «ЛЭТИ»)

    Факультет компьютерных технологий и информатики
    Кафедра вычислительной техники

    ОТЧЕТ

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

    на тему:

    «Исследование внутреннего представления различных форматов данных»

    по дисциплине: «Организация ЭВМ и систем»
    Выполнил студент группы №
    Принял: Гречухин М.Н.


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

    2018 г.

    Содержание

    Введение…………………………………………………...…..………………….3

    1. Задание ……………………………………………………………………….3

    2. Текст программы……………………………………………………………..6

    3. Примеры запуска программы……………………………… ………………10

    4. Структурная схема аппаратных средств, используемых при выполнении программы……………………………………………………………………11

    Заключение………………………………………………………………………11

    Введение
    Цель работы: знакомство с внутренним представлением различных типов
    данных, используемых компьютером при их обработке.
    1. Задание
    1. Написать программу, которая выводит на экран двоичное представление в памяти ЭВМ (все разряды) целого числа, как положительного, так и отрицательного. При выводе визуально обозначить знаковый разряд и значащие разряды (отступом, цветом и т. п.).
    2. Написать программу, которая выводит на экран двоичное представление в памяти ЭВМ (все разряды) числа типа float и double. При выводе визуально обозначить знаковый разряд мантиссы, знаковый разряд порядка (если есть), мантиссу и порядок.
    3. Написать программу, позволяющую изменить произвольные биты в целом числе и числе типа float на 1 или 0 по указанию пользователя (номер бита и значение вводятся с клавиатуры).

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



    #include "stdafx.h"

    #include
    using namespace std;
    union bitDouble { double number; unsigned long int bit[2]; };

    union bitFloat { float number; unsigned long int bit; };
    void outFloat(unsigned long int num) //вывод двоичного представления вещественного числа типа Float

    {

    for (int i = sizeof(unsigned long int) * 8 - 1; i >= 0; --i)

    {

    cout << ((num >> i) & 1);

    if ((i == sizeof(unsigned long int) * 8 - 1) || (i == sizeof(unsigned long int) * 8 - 9))

    cout << ' ';

    }

    cout << endl;

    }
    void outDouble(unsigned long int* num) //Вывод двоичного представления вещественного числа типа Double

    {

    for (int i = 1; i >= 0; i--)

    {

    for (int j = sizeof(unsigned long int) * 8 - 1; j >= 0; j--) {

    cout << ((num[i] >> j) & 1);

    if ((i == 1) && ((j == sizeof(unsigned long int) * 8 - 1) || (j == sizeof(unsigned long int) * 8 - 12)))

    cout << ' ';

    }

    }

    cout << endl;

    }
    void outInt(int num) //Вывод двоичного представления целого числа типа int

    {

    for (int i = sizeof(int) * 8 - 1; i >= 0; --i)

    {

    cout << ((num >> i) & 1);

    if (i == sizeof(int) * 8 - 1)

    cout << ' ';

    }

    cout << endl;

    }
    int main()

    {

    int NUM;

    int menu;

    bitFloat FNUM;

    bitDouble DNUM;

    do

    {

    cout << " MAIN MENU " << endl;

    cout << " 1. Output bit" << endl;

    cout << " 2. Change bit" << endl;

    cout << " 0. Exit " << endl;

    cin >> menu;

    system("cls");

    switch (menu)

    {

    case 1:

    cout << " Enter the integer number " << endl;

    cin >> NUM;

    outInt(NUM);

    cout << "Enter the double number " << endl;

    cin >> DNUM.number;

    outDouble(DNUM.bit);

    cout << "Enter the float number " << endl;

    cin >> FNUM.number;

    outFloat(FNUM.bit);

    break;

    case 2:

    bool type;

    bool switcher;

    int numbit;

    cout << "Choose data: 1. integer / 0. float" << endl;

    cin >> type;

    if (type == 1)

    {

    cout << " Enter an integer" << endl;

    cin >> NUM;

    int NewNum = NUM;

    do

    {

    cout << "Enter a number of bit" << endl;

    cin >> numbit;

    if (numbit < 0 || numbit > sizeof(int) * 8 - 1)

    cout << "Error! Enter a correct number of bit" << endl;

    } while (numbit < 0 || numbit > sizeof(int) * 8 - 1);

    cout << "Change this bit to 0 or 1?" << endl;

    cin >> switcher;

    if (switcher == 1)

    {

    NewNum |= 1 << numbit;

    cout << "Result:" << endl;

    outInt(NUM);

    outInt(NewNum);

    }

    else if (switcher == 0)

    {

    NewNum &=

    (1 << numbit);

    cout << "Result:" << endl;

    outInt(NUM);

    outInt(NewNum);

    }

    }

    else if (type == 0)

    {

    cout << " Enter a float" << endl;

    cin >> FNUM.number;

    bitFloat Newfnum = FNUM;

    do {

    cout << "Enter a number of bit" << endl;

    cin >> numbit;

    if (numbit < 0 || numbit > sizeof(float) * 8 - 1)

    cout << "Error! Enter a correct number of bit (0-31)" << endl;

    } while (numbit < 0 || numbit > sizeof(float) * 8 - 1);

    cout << "Change this bit to 0 or 1?" << endl;

    cin >> switcher;

    if (switcher == 1)

    {

    Newfnum.bit |= 1 << numbit;

    cout << "Result:" << endl;

    outFloat(FNUM.bit);

    outFloat(Newfnum.bit);

    }

    else if (switcher == 0)

    {

    Newfnum.bit &= (1 << numbit);

    cout << "Result:" << endl;

    outFloat(FNUM.bit);

    outFloat(Newfnum.bit);

    }

    }

    break;

    case 0:

    break;

    }

    }

    while (menu != 0);

    system("pause");

    return 0;

    };

    3 . Примеры запуска программы











    4. Структурная схема аппаратных средств, используемых при выполнении программы



    Заключение
    При выполнении лабораторной работы получены знания внутреннего представления типов int, float и double, используемые компьютером при их обработке.


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