
- •Министерство образования и науки украины
- •Содержание
- •Требования по оформлению контрольной работы
- •1 Вопросы для проверки уровня знаний основ компьютерной арифметики
- •2 Перечень технической литературы
- •3Cистемы счисления компьютерной арифметики
- •3.1 Представление чисел в позиционных системах счисления
- •3.2 Выбор системы счисления компьютера
- •4 Методы перевода чисел из одной позиционной системы счисления в другую
- •4.1 Методы перевода целых чисел
- •4.1.1 Метод подбора коэффициентов
- •4.1.2 Метод перевода делением на основание новой системы
- •4.1.3 Метод перевода чисел делением на основание в положительной степени
- •4.2 Перевод правильных дробей умножением на основание системы
- •4.3 Перевод неправильных дробей
- •4.4 Перевод чисел из 16-и и 8-ричных систем в двоичную и обратно
- •5 Форматы представления чисел в компьютере
- •5.1 Представления чисел с фиксированной запятой
- •5.2 Представление чисел в формате с плавающей запятой
- •5.3 Погрешности представления чисел
- •5.3.1 Абсолютная погрешность представления чисел
- •5.3.2 Относительная погрешность представления числа
- •6 Бинарная арифметика
- •6 1 Формальные правила двоичной арифметики
- •6.2 Представление отрицательных чисел
- •7 Коды бинарных чисел
- •7.1 Обратный код числа
- •7.1.1 Переход от обратного кода к прямому
- •7.2 Дополнительный код числа
- •7.3 Сложение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре прямого кода
- •8 Алгебраическое сложение бинарных чисел
- •8.1Cложение чисел на двоичном сумматоре дополнительного кода
- •8.2 Сложение чисел на сумматоре обратного кода
- •9 Модифицированные бинарные коды
- •9.2 Модифицированное сложение чисел в формате с плавающей точкой
- •10 Сложение чисел при разных значениях порядков
- •10.1 Алгоритм операции сложения в формате с плавающей точкой
- •11 Умножение двоичных чисел
- •11.1 Методы умножения бинарных чисел
- •11.2 Умножение чисел с фиксированной запятой на дспк
- •11.3 Умножение чисел с плавающей запятой
- •12 Умножение чисел на дсдк
- •12.1 Умножение чисел на дсдк при положительном множителе
- •12.2 Умножение чисел на дсдк при отрицательном множителе
- •13. Деление бинарных чисел
- •13.1 Метод деления бинарных чисел
- •13.1.1 Общий алгоритм деления чисел с восстановлением остатка
- •13.2 Деление чисел с фиксированной запятой с восстановлением остатка
- •14 Деление чисел с фиксированной запятой без восстановления остатка
- •14.1 Алгоритм деления без восстановления остатка
- •14.2 Деление чисел с плавающей запятой
- •15 Контрольное задание
10.1 Алгоритм операции сложения в формате с плавающей точкой
Итак, операция сложения (вычитания) выполняется в следующей последовательности.
Перевести операнды в двоичные дополнительные (или обратные) модифицированные коды, проверив перед этим нормализацию исходных чисел.
Определить разность порядков ΔР = ра - рв
Если ΔР > 0, сдвинуть мантиссу числа В на ΔР разрядов вправо; если ΔР < 0, сдвинуть мантиссу числа А на ΔР разрядов вправо; если ΔР = 0, мантиссы не сдвигаются, (разряды выходящие за приделы разрядной сетки мантиссы теряются).
Выполнить операцию алгебраического сложения (вычитания) над мантиссами. Алгебраическое сложение выполняется по следующему правилу. Анализируется знак числа:
-если знак положительный (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.Для выравнивания порядков чисел, необходимо выяснить, какое из заданных чисел подлежит денормализации. Для этого, определяется автоматом разность порядков чисел.
Р = РА – РВ. Переведем порядки чисел в обратные коды.
РАобр. = 11.01 ; РВобр. = 11.00. Тогда, Р = РАобр - РВобр.=11.01 – 11.00
Заменим операцию вычитания, на операцию сложения.
Р = РАобр -РВобр. = РАобр +РВобр =11.01 + 00.11. Где РВобр. –
инверсный код РВобр. Выполним сложение.
Величина Р положительная, поэтому РА РВ. Следовательно, надо сдвигать мантиссу числа В вправо на Р разрядов, т. е. на один разряд, увеличив одновременно порядок на +1.
4.Сдвинем мантиссу числа В вправо на один разряд и сложим их значения на сумматоре обратного кода.
5. Проверим условие нормализации мантиссы результата справа, слева.