ЭВМ. Лаб1. Отчет по лабораторной работе 1 исследование внутреннего представления различных форматов данных
Скачать 273.72 Kb.
|
1 2 Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)» кафедра Вычислительной Техники ОТЧЕТ по лабораторной работе № 1 «ИССЛЕДОВАНИЕ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ РАЗЛИЧНЫХ ФОРМАТОВ ДАННЫХ » Выполнили : Семёнова Д.В. Кириллова Е.К. Группа № : 7373 Преподаватель : Гречухин М. Н. Санкт-Петербург 2018 Лабораторная работа № 1. «ИССЛЕДОВАНИЕ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ РАЗЛИЧНЫХ ФОРМАТОВ ДАННЫХ» Цель работы: знакомство с внутренним представлением различных типов данных, используемых компьютером при их обработке. Общие положения При программировании на языке С++ используются 11 стандартных типов данных. Среди них можно выделить 3 группы: 1. данные символьные и целого типа беззнаковые (с фиксированной запятой); 2. данные символьные и целого типа со знаком (с фиксированной запятой), значения которых хранятся в двоичном дополнительном коде; 3. данные вещественного типа (с плавающей запятой (точкой)). Числовое значение данных первой группы занимает всю разрядную сетку (количество двоичных разрядов от 8 до 32), отведенных под конкретный тип. Знак числа данных второй группы занимает старший (левый) разряд, а остальную часть разрядной сетки (от 7 до 31 двоичных разрядов) занимает числовое значение данных, отведенных под конкретный тип. Формат хранения данных третьей группы описывается IEEE - стандартом в виде значения мантиссы (M) со знаком (S) и значения порядка (P). Число бит для хранения мантиссы и порядка зависит от типа данных с плавающей запятой. float
31 30 23 22 0 double
63 62 52 51 0 long double
79 78 64 63 0 Вещественное число в памяти хранится с нормализованной мантиссой, значение которой в десятичном эквиваленте лежит в диапазоне от 1 до 2. Причём 2 не входит в границу диапазона. Если в процессе выполнения какой-либо операции над данными с плавающей запятой значение мантиссы выходит из указанного диапазона, то в конце операции выполняется нормализация результата путем приведения значения мантиссы к указанному диапазону с соответствующим изменением значения порядка. Но если мантисса всегда нормализована, то старший её бит, то есть единицу, можно и не хранить в памяти. Стандартом предложено этот бит не хранить в памяти и тем самым увеличить точность представления вещественных чисел в 2 раза. Отбрасывание старшей цифры мантиссы выполняется для форматов float и double, но не выполняется для long double. Порядок числа в соответствии с указанным форматом хранится «сдвинутым», то есть к его действительному значению добавляется в зависимости от формата такое число, чтобы порядок Р был всегда неотрицательным. Для формата float прибавляется 127, для чисел формата double прибавляется 1023, а для формата long double добавляется 16383. Всегда неотрицательный порядок упрощает выполнение операции сравнения порядков и арифметических операций над ними, а также избавляет от необходимости выделять один бит для хранения знака порядка. Задание на лабораторную работу 1. Написать программу, которая выводит на экран двоичное представление в памяти ЭВМ (все разряды) целого числа, как положительного, так и отрицательного. При выводе визуально обозначить знаковый разряд и значащие разряды (отступом, цветом и т. п.). 2. Написать программу, которая выводит на экран двоичное представление в памяти ЭВМ (все разряды) числа типа float и double. При выводе визуально обозначить знаковый разряд мантиссы, знаковый разряд порядка (если есть), мантиссу и порядок. 3. Написать программу, позволяющую изменить произвольные биты в целом числе и числе типа float на 1 или 0 по указанию пользователя (номер бита и значение вводятся с клавиатуры) Блок-схема алгоритма: Схема аппаратных средств: 1 2 |