Реферат Курсовая Конспект
КОМПЬЮТЕРНАЯ АРИФМЕТИКА. ПРИКЛАДНАЯ ТЕОРИЯ ЦИФРОВЫХ АВТОМАТОВ - раздел Компьютеры, Министерство Образования И Науки Украины Запорожский Национальный Те...
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
запорожский национальный технический университет
ПРИКЛАДНАЯ ТЕОРИЯ ЦИФРОВЫХ АВТОМАТОВ
чАСТЬ 1
КОМПЬЮТЕРНАЯ АРИФМЕТИКА
СОДЕРЖАНИЕ
СОДЕРЖАНИЕ_ 3
ВВЕДЕНИЕ_ 6
ТРЕБОВАНИЯ ПО ОФОРМЛЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ_ 6
1 ВОПРОСЫ ДЛЯ ПРОВЕРКИ УРОВНЯ ЗНАНИЙ ОСНОВ КОМПЬЮТЕРНОЙ АРИФМЕТИКИ 7
2 ПЕРЕЧЕНЬ ТЕХНИЧЕСКОЙ ЛИТЕРАТУРЫ_ 11
3 CИСТЕМЫ СЧИСЛЕНИЯ КОМПЬЮТЕРНОЙ АРИФМЕТИКИ_ 11
3.1 Представление чисел в позиционных системах счисления_ 11
3.2 Выбор системы счисления компьютера_ 14
4 МЕТОДЫ ПЕРЕВОДА ЧИСЕЛ ИЗ ОДНОЙ ПОЗИЦИОННОЙ СИСТЕМЫ СЧИСЛЕНИЯ В ДРУГУЮ 14
4.1 Методы перевода целых чисел_ 15
4.1.1 Метод подбора коэффициентов 15
4.1.2 Метод перевода делением на основание новой системы_ 16
4.1.3 Метод перевода чисел делением на основание в положительной степени 16
4.2 Перевод правильных дробей умножением на основание системы_ 17
4.3 Перевод неправильных дробей_ 18
4.4 Перевод чисел из 16-и и 8-ричных систем в двоичную и обратно_ 18
5 ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ЧИСЕЛ В КОМПЬЮТЕРЕ_ 19
5.1 Представления чисел с фиксированной запятой_ 20
5.2 Представление чисел в формате с плавающей запятой_ 21
5.3 Погрешности представления чисел_ 22
5.3.1 Абсолютная погрешность представления чисел_ 23
5.3.2 Относительная погрешность представления числа_ 23
6 БИНАРНАЯ АРИФМЕТИКА_ 24
6 1 Формальные правила двоичной арифметики_ 24
6.2 Представление отрицательных чисел_ 25
7 КОДЫ БИНАРНЫХ ЧИСЕЛ_ 26
7.1 Обратный код числа_ 26
7.1.1 Переход от обратного кода к прямому_ 27
7.2 Дополнительный код числа_ 28
7.3 Сложение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре прямого кода 29
8 АЛГЕБРАИЧЕСКОЕ СЛОЖЕНИЕ БИНАРНЫХ ЧИСЕЛ_ 30
8.1 Cложение чисел на двоичном сумматоре дополнительного кода_ 30
8.2 Сложение чисел на сумматоре обратного кода_ 32
9 МОДИФИЦИРОВАННЫЕ БИНАРНЫЕ КОДЫ_ 34
9.1 Переполнение разрядной сетки_ 34
9.1.1 Переполнение при сложении прямых кодов 34
9.1.2 Переполнение при сложении дополнительных кодов 35
9.1.3 Переполнение при сложении в обратных кодах_ 35
9.2 Модифицированное сложение чисел в формате с плавающей точкой_ 37
10 СЛОЖЕНИЕ ЧИСЕЛ ПРИ РАЗНЫХ ЗНАЧЕНИЯХ ПОРЯДКОВ_ 40
10.1 Алгоритм операции сложения в формате с плавающей точкой_ 40
11 УМНОЖЕНИЕ ДВОИЧНЫХ ЧИСЕЛ_ 43
11.1 Методы умножения бинарных чисел_ 43
11.2 Умножение чисел с фиксированной запятой на ДСПК_ 44
11.3 Умножение чисел с плавающей запятой_ 46
12 УМНОЖЕНИЕ ЧИСЕЛ НА ДСДК_ 48
12.1 Умножение чисел на ДСДК при положительном множителе 48
12.2 Умножение чисел на ДСДК при отрицательном множителе 49
13. ДЕЛЕНИЕ БИНАРНЫХ ЧИСЕЛ_ 50
13.1 Метод деления бинарных чисел_ 50
13.1.1 Общий алгоритм деления чисел с восстановлением остатка_ 51
13.2 Деление чисел с фиксированной запятой с восстановлением остатка 52
14 ДЕЛЕНИЕ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ БЕЗ ВОССТАНОВЛЕНИЯ ОСТАТКА 55
14.1 Алгоритм деления без восстановления остатка_ 55
14.2 Деление чисел с плавающей запятой_ 57
15 КОНТРОЛЬНОЕ ЗАДАНИЕ_ 58
ВВЕДЕНИЕ
Методические указания к выполнению контрольных заданий из курса «Прикладная теория цифровых автоматов» часть-1 «Компьютерная арифметика» содержат в краткой форме теоретические основы компьютерной арифметики.
Рассмотрены методы преобразования чисел из десятичной системы счисления в различные формы представления информации в компьютере. Представлены алгоритмы выполнение основных арифметических операций алгебраического сложения, умножения, и деления. Рассмотрены форматы представления бинарных чисел с фиксированной и плавающей запятой, прямые, обратные и дополнительные коды.
Контрольное задание содержит базовые числа проведения вычислений, задание для вычислений и оценки абсолютной и относительной погрешности Объем и содержание теоретических вопросов по сдаче зачета (экзамена) по курсу компьютерной арифметики приведен в разделе 1. Основная техническая литература приведена в разделе 2.
CИСТЕМЫ СЧИСЛЕНИЯ КОМПЬЮТЕРНОЙ АРИФМЕТИКИ
Системы счисления, в которых алгоритмические числа образуются сложением узловых, называются аддитивными.
В числах десятичной, двоичной, восьмеричной и др. системах применен аддитивно-мультипликативный способ.
Системы счисления делят на позиционные и непозиционные.
Система счисления, в которой значение базисной цифры определяется ее положением в разрядах числа, называется позиционной.
Например, в десятичной системе счисления в числе 222 первая цифра справа означает две единицы, вторая - два десятка, третья - две сотни.
Методы перевода целых чисел
Существует несколько методов перевода чисел из одной системы счисления в другую. Перевод чисел из десятичной системы в двоичную осуществляется раздельно. Сначала переводят целую часть, а затем отдельно дробную часть. Результаты соединяют через запятую. Рассмотрим основные методы.
Перевод неправильных дробей
Правило. Для перевода неправильной дроби (т.е. дроби содержащую целую часть) из одной системы счисления в другую, необходимо раздельно осуществить перевод ее целой и дробной части, а результаты записать последовательно, отделив целую часть от дробной запятой.
Например: 98,625 = 1100010,1010.
Перевод чисел из 16-и и 8-ричных систем в двоичную и обратно
При переводе чисел из десятичной системы в двоичную, часто используют промежуточную восьмеричную или шестнадцатеричную систему. Это дает экономию в числе операций.
Например. Перевести десятичное число 121 в двоичное.
Для сравнения, покажем перевод через основания 8 и 2.
Чтобы перевести число из 16 или 8-ричной системы в двоичную необходимо каждую цифру переводимого числа представить соответственно четырех или трехразрядным двоичным кодом (тетрадами или триадами) расположив их на местах (разрядах) этих цифр. Нули в старших разрядах, не изменяющих значение числа можно опускать.
Например: 171(8) в двоичное N = 001 111 001=1 111 001
Например: 753,335(8) в двоичное 111 101 011,011 011 101.
Для перевода чисел из двоичной системы счисления в шестнадцатеричную (восьмеричную) необходимо. Двоичные цифры переводимого числа сгруппировать по четыре (три) в обе стороны от запятой (при необходимости неполные группы дополнить нулями). Каждую группу двоичных цифр заменить соответствующей ей цифрой в новой системе счисления. Новые цифры расположить на местах заменяемых кодов.
Пример: 111111010,1100001001(2) перевести в 16 и 8-ричную системы.
1. 0001 1111 1010, 1100 0010 0100(2) =1FA,C24.
1 F А , С 2 4(16)
Ответ: 1FA,C24(16)
2. 111 111 010, 110 000 100 100(2) =772,6044
7 7 2 , 6 0 4 4 (8)
Ответ: 772,6044(8)
Обобщая, делаем заключение. В качестве промежуточных систем счисления, при переводе чисел, целесообразно использовать системы с основанием q=2k, k=1,2,3,…Это упрощает преобразование их в двоичную систему и наоборот.
Порядок - это показатель степени, на который нужно умножить или разделить (для отрицательного знака порядка) мантиссу для получения целой части числа.
При нормализации, число сдвигают вправо (если есть целая часть числа) или влево (до установления единицы после знака числа). При сдвиге вправо порядок (т.е. степень основания) увеличивается с каждым сдвигом на +1. При сдвиге влево порядок уменьшается каждый раз на -1.
Примеры. Записать двоичное число+0011101,011 в нормальной форме.
+0011101,011 = 0,11101011*25 = 00.111010110.00.101
При записи мантиссы и порядка, удобно чтобы старший разряд был слева. Иногда расположение старших разрядов оговаривают особо.
Поскольку основание 2(10) = 010(2) всегда постоянное, то его запись в характеристике числа опускается.
Погрешности представления чисел
Цифровой автомат, как мы видим, всегда приводит к появлению погрешности в расчетах, величина которых зависит от ограничений накладываемых на автомат по разрядной сетке, форме представления чисел и др.
БИНАРНАЯ АРИФМЕТИКА
КОДЫ БИНАРНЫХ ЧИСЕЛ
Особо обратить внимание.
Если в знаковом разряде машинного представления находится (q-1), то все цифры числа, исключая знаковый, заменяются вычетом из (q-1) значения разряда; если в знаковом разряде находится нуль, то преобразование не производятся.
Ниже приведены примеры для различных систем счисления:
Переход от обратного кода к прямому
Переход от обратного кода к прямому производится по аналогичному правилу. Из значения (q-1) вычитается значение по каждому разряду, кроме знаковых. Для бинарной системы счисления (просто счастливый случай), можно перейти к прямому коду простым инвертированием разрядов обратного кода, кроме разрядов знаков.
АЛГЕБРАИЧЕСКОЕ СЛОЖЕНИЕ БИНАРНЫХ ЧИСЕЛ
Заключение. Теорема справедлива для всех случаев, в которых не возникает переполнение разрядной сетки, что позволяет складывать машинные изображения чисел по правилам двоичной арифметики.
МОДИФИЦИРОВАННЫЕ БИНАРНЫЕ КОДЫ
Переполнение разрядной сетки
Мы не раз наблюдали, как при сложении чисел с одинаковыми знаками, представленных в форме с фиксированной запятой, может возникнуть переполнение разрядной сетки. При этом, чтобы избежать искажения результата сложения, автомат должен фиксировать переполнение и производить правый сдвиг числа.
Переполнение при сложении прямых кодов
Признаком переполнения разрядной сетки сумматора прямого кода является появление единицы переноса из старшего разряда цифровой части числа.
Пример.
А=0,1010; В=0,1101.
Получен искаженный результат, из-за потери переноса.
Переполнение при сложении дополнительных кодов
Признаком переполнения разрядной сетки сумматора дополнительного кода при сложении положительных чисел является отрицательный знак результата, а при сложении отрицательных чисел - положительный знак результата.
Пример: А=0,1011, В=0,1010
Алгоритм операции сложения в формате с плавающей точкой
Итак, операция сложения (вычитания) выполняется в следующей последовательности.
1. Перевести операнды в двоичные дополнительные (или обратные) модифицированные коды, проверив перед этим нормализацию исходных чисел.
2. Определить разность порядков ΔР = ра - рв
3. Если ΔР > 0, сдвинуть мантиссу числа В на ΔР разрядов вправо; если ΔР < 0, сдвинуть мантиссу числа А на ΔР разрядов вправо; если ΔР = 0, мантиссы не сдвигаются, (разряды выходящие за приделы разрядной сетки мантиссы теряются).
4. Выполнить операцию алгебраического сложения (вычитания) над мантиссами. Алгебраическое сложение выполняется по следующему правилу. Анализируется знак числа:
-если знак положительный (00), то в сумматор мантиссы число поступает в прямом коде;
-если знак отрицательный (11), то в сумматор мантиссы число поступает в обратном (дополнительном) коде;
Сложение производится поразрядно, по правилам бинарной арифметики, с переносом единицы переполнения в старший разряд. Знаковые разряды также участвуют в сложении. Единица переполнения в старшем знаковом разряде, для сумматоров дополнительного кода пропадает, для сумматоров обратного кода по обратной связи добавляется к младшему разряду мантиссы.
Для представления результата в прямом коде, после сложения, анализируется знак результата:
-если знак 01(или 10), то знак вначале восстанавливается путем сдвига мантиссы вправо на один разряд с одновременным увеличением порядка на +1;
-если знак 00, то число результата положительное и уже представлено в прямом коде;
-если знак 11, то число результата отрицательное и представлено в обратном (дополнительном) коде. В этом случае, требуется преобразование числа из обратного (дополнительного) в прямой код, путем инвертирования числа (кроме знака) для обратных сумматоров и инвертирования числа (кроме знака) с добавлением +1 к младшему разряду мантиссы для дополнительных кодов.
Результату устанавливается порядок большего числа.
5. Проводится проверка числа на нормализацию (для нормализованных чисел, после знака мантиссы должна стоять единица). Если после знака мантиссы стоит нуль (0), то число сдвигается влево на один разряд (с одновременным уменьшением порядка на –1). Проверяется нормализация. Цикл может повторяться до достижения нормализации.
По данному алгоритму выполняют операции сложения и вычитания цифровые автоматы АЛУ.
Пример. Сложить А = 0,1011 * 2-2 и В = -0,1001 * 2-3 Числа заданны в естественном виде. В АЛУ используется два сумматора обратного кода: - сумматор мантисс (шесть разрядов, включая знак); сумматоры порядков (вместе со знаком - четыре разряда).
РЕШЕНИЕ.
1.Учитывая, что числа заданны уже в нормализованном виде (после запятой стоит 1) представим их в машинном виде в формате с плавающей точкой.
Ампр. = 00.1011.11.10 ; Вмпр.= 11.1001.11.11.
2.Переводим мантиссы чисел в обратные коды.
m(Аобр.) = 00.1011; m(Вобр.) = 11.0110.
3.Для выравнивания порядков чисел, необходимо выяснить, какое из заданных чисел подлежит денормализации. Для этого, определяется автоматом разность порядков чисел.
DР = РА – РВ. Переведем порядки чисел в обратные коды.
РАобр. = 11.01 ; РВобр. = 11.00. Тогда, DР = РАобр - РВобр.=11.01 – 11.00
Заменим операцию вычитания, на операцию сложения.
DР = РАобр -РВобр. = РАобр +`РВобр =11.01 + 00.11. Где `РВобр. –
инверсный код РВобр. Выполним сложение.
Величина DР положительная, поэтому РА > РВ. Следовательно, надо сдвигать мантиссу числа В вправо на DР разрядов, т. е. на один разряд, увеличив одновременно порядок на +1.
4.Сдвинем мантиссу числа В вправо на один разряд и сложим их значения на сумматоре обратного кода.
5. Проверим условие нормализации мантиссы результата справа, слева.
УМНОЖЕНИЕ ДВОИЧНЫХ ЧИСЕЛ
УМНОЖЕНИЕ ЧИСЕЛ НА ДСДК
С одной стороны, если числа хранятся в цифровом автомате в дополнительных кодах, то и операцию умножения удобно производить на сумматоре дополнительного кода. С другой стороны, при умножении на ДСДК возникают проблемы, преодолеть которые можно только учитывая определенные правила.
ДЕЛЕНИЕ БИНАРНЫХ ЧИСЕЛ
ДЕЛЕНИЕ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ БЕЗ ВОССТАНОВЛЕНИЯ ОСТАТКА
Деление чисел с плавающей запятой
При делении чисел представленных в формате с плавающей запятой, деление выполняют над мантиссой mс = ma /mB, а порядки вычитаются Рс = Ра - РB.
Деление мантисс производится в таком же порядке, как и в формате с фиксированной запятой. При этом, используются методы с восстановлением остатка и без восстановления остатка. Результату присваивается порядок Рс.
КОНТРОЛЬНОЕ ЗАДАНИЕ
После изучения теоретических основ курса «Компьютерной арифметики», студент выполняет самостоятельно свой вариант контрольного задания, руководствуясь данными методическими указаниям. Оформленная контрольная работа направляется преподавателю дисциплины ПТЦА кафедры КСС не позднее чем за две недели до зачетной сессии.
В контрольном задании определеныследующие базовые числа:
А = – 35, 62; В = 2, 5
Используя базовые числа, студент определяет числа своего варианта, необходимые для выполнения контрольного задания.
Числа варианта определяются путем добавления к базовым числа записанного в последних двух разрядах номера зачетной книжки студента. Сумма берется по абсолютной величине, т.е. без учета знака.
Например. В зачетной книжке студента в последних двух разрядах стоит число 38, тогда числа варианта будут:
А = 35, 62 + 38 = 73, 62; В = 2, 5 + 38 = 40, 5.
Над числами варианта необходимо произвести следующие операции:
-выполнить преобразование десятичных чисел в двоичные всеми методами, изложенными в разделе 4 (4.1, 4.2, 4.3)и провести проверку преобразования путем подстановки весов разрядов и их суммирования;
-выполнить преобразования по п.4.4;
-представить числа варианта задания в форматах фиксированной точки и плавающей запятой в модифицированном коде при 16 разрядной сетке ПК (п.п. 5.1, 5.2 с использованием раздела 9);
-выполнить преобразование чисел варианта с прямого кода в обратный и снова в прямой (п. 7.1);
-выполнить преобразование чисел варианта с прямого кода в обратный, затем в дополнительный и снова в прямой (п. 7.2);
-выполнить операцию сложения бинарных чисел в прямом коде (п. 7.3 , знаки чисел взять одинаковыми);
-выполнить операцию сложения бинарных чисел в дополнительном и обратном коде (п.п. 8.1, 8.2, 10, 10,1). Определить абсолютную и относительную погрешности результатов;
-выполнить операцию умножения бинарных чисел (11.2, 12.1);
-выполнить операцию деления бинарных чисел в дополнительном коде методом с восстановлением остатка (13.2) и методом без восстановления остатка ( 14.1).
Примечание.Все арифметические операции производить с точностью до четвертого знака после запятой.
– Конец работы –
Используемые теги: Компьютерная, арифметика, кладная, Теория, цифровых, автоматов0.091
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: КОМПЬЮТЕРНАЯ АРИФМЕТИКА. ПРИКЛАДНАЯ ТЕОРИЯ ЦИФРОВЫХ АВТОМАТОВ
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов