Оглавление
Введение
1. Аналитическая часть
1.1 Представление целых чисел в формате с фиксированной запятой
2. Практическая разработка
2.1 Блок-схема алгоритма с поясняющим текстом
2.2 Распределение памяти и листинг программы с комментарием
3. Описание средств вычислительной техники
Вывод
Список литературы
Введение
В аналитической части данного курсового проекта необходимо провести аналитический обзор двоичной, восьмеричной и шестнадцатеричной систем счисления и правил перевода десятичных чисел в них и обратно, а также рассмотреть форматы хранения чисел с плавающей точкой. Для примера требуется взять числа из второй части курсового проекта. Знание этих тем необходимо для выполнения практической части, т.к. в Эмулятор микро-ЭВМ используется шестнадцатеричная система счисления, а задание требует сформировать число с плавающей точкой
В практической части необходимо составить программу преобразовывающую массив констант в формат числа с плавающей точкой на Эмуляторе микро-ЭВМ СМ-1800. Программа должна корректно работать для любого массива заданных констант
Аналитическая часть
Представление целых чисел в формате с фиксированной запятой
Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения.
Так в n-разрядной ячейке может храниться 2n различных значений целых чисел. Так в 8-разрядной ячейке может храниться 28=256 различных значений, в 16-разрядной - 216=65536 различных значений.
Целые числа могут представляться в компьютере без знака и со знаком.
Целые числа без знака. Обычно занимают в памяти компьютера один или два байта. Максимальное значение целого числа без знака (положительного числа) достигается в случае, когда во всех ячейках хранятся единицы.
Для n-разрядного представления оно будет равно .
Для 8-разрядной ячейки максимальное значение целого положительного числа достигается в случае, когда во всех ячейках хранятся единицы и равно
. Минимальное число соответствует восьми нулям, хранящимся в восьми битах ячейки памяти, и равно нулю. Следовательно, в 8-разрядной ячейке диапазон изменения целых чисел без знака: от 0 до 255. В 16-разрядной ячейке - от 0 до 65535 (всего 65536 значений).
Так, число 111000012 будет храниться в 8-разрядной ячейке памяти следующим образом:
В 16-разрядном представлении число 200610=111110101102 будет храниться следующим образом:
Итак, чтобы получить внутреннее представление целого числа без знака А, хранящегося в n-разрядном машинном слове, необходимо:
) перевести число А в двоичную систему счисления;
) полученный результат дополнить слева незначащими нулями до n разрядов.
Целые числа со знаком: прямой, обратный и дополнительный коды. Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта. Для хранения целых чисел со знаком старший (левый) разряд в машинном слове отводится под знак числа (если число положительное, то в знаковый разряд записывается ноль, если число отрицательное - единица). Ровно половина из всех 2n чисел будут отрицательными; учитывая необходимость нулевого значения, положительных будет на единицу меньше.
Максимальное положительное число (с учетом выделения одного разряда на знак) для целых чисел со знаком в n-разрядном представлении равно . Минимальное отрицательное число (с учетом выделения одного разряда на знак) для целых чисел со знаком в n-разрядном представлении равно -
.
Диапазоны значений целых чисел со знаком:
в 8-разрядной ячейке: от - 128 до 127;
в 16-разрядной ячейке: от - 32 768 до 32 767;
в 32-разрядной ячейке: от - 2 147 483 648 до 2 147 483 647.
Для представления отрицательного числа используется дополнительный код. Дополнительный код положительного числа совпадает с его прямым кодом.
Прямой код целого положительного числа может быть получен следующим образом: число переводится в двоичную систему счисления, а затем его двоичную запись слева дополняют необходимым количеством нулей в соответствии с разрядностью машинного слова. Например, прямой код числа 3710=1001012 в 16-разрядной ячейке будет иметь вид 0000000000100101.
Для записи внутреннего представления целого число со знаком (-А) необходимо:
) модуль числа записать в прямом коде в n двоичных разрядах;
) получить обратный код числа, для этого значения всех бит инвертировать - все единицы заменить на нули и все нули заменить на единицы);
) к полученному обратному коду прибавить единицу. Получим дополнительный код целого числа со знаком.
Например, внутреннее представление целого отрицательного числа - 1607 в 16-разрядной ячейке запишется следующим образом: 1111 1001 1011 1001. Так как:
) а) ½-1607½=160710=110010001112
б) прямой код в 16-разрядной ячейке:
0110 0100 0111
) обратный код:
1001 1011 1000
) дополнительный код (результат прибавления 1):
1001 1011 1001 - это внутренне двоичное представление числа (-1607).
эмулятор массив плавающая точка
Практическая разработка