- •Министерство образования и науки украины
- •Содержание
- •Требования по оформлению контрольной работы
- •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 Контрольное задание
12 Умножение чисел на дсдк
С одной стороны, если числа хранятся в цифровом автомате в дополнительных кодах, то и операцию умножения удобно производить на сумматоре дополнительного кода. С другой стороны, при умножении на ДСДК возникают проблемы, преодолеть которые можно только учитывая определенные правила.
12.1 Умножение чисел на дсдк при положительном множителе
При положительном множителе можно сформулировать следующий алгоритм умножения чисел на ДСДК.
Алгоритм. Если множитель больше "0", то умножение на сумматоре дополнительного модифицированного кода заключается в следующем. Анализируется разряд множителя, начиная с младшего. При ві = 1, к содержимому сумматора добавляется множимое. При ві = 0, к содержимому сумматора ничего не добавляется. После каждого анализа, производится модифицированный сдвиг сумматора и множителя вправо на один разряд.
Пример. Умножить числа А = – 0,10101 = – 21, В=0,10011 =19. Метод 2. ДСДК. Подготовим числа ам.доп. = 11.01011; Вм.доп. = 00.10011 . Сумматор имеет 7 разрядов, РгВ имеет 5 разрядов. Решение представлено таблицей 12.1.
Для уменьшения затрат, часто используют режим экономии аппаратных ресурсов, при этом, результат умножения хранится в сумматоре и в РгВ, передавая при сдвигах младшие разряды сумматора в старшие разряды РгВ. Этим и определяется произведенный нами ранее выбор разрядности устройств.
Результат получен в дополнительном коде со знаком 11. После преобразования его в прямой код, знак сохраняется.
12.2 Умножение чисел на дсдк при отрицательном множителе
Второй случай, когда А - любое число, а множитель В < 0.
При отрицательном множителе произведение дополнительных кодов операндов не равно дополнительному коду результата.
Поэтому, умножение выполняется аналогично подразделу 12.1 но с добавлением к результату поправки.
ПРАВИЛО. Если множитель отрицательный, то произведение чисел на сумматоре дополнительного кода получается прибавлением к произведению дополнительных кодов сомножителей поправки +1. Это инвертированное , включая и знак с добавлением 1 к младшему разряду.
Таким образом, на сумматоре дополнительного модифицированного кода получаем одновременно знаковую и цифровую части произведения.
Пример. Умножить числа А = – 0,10111 = – 23 и
В= – 0,11001 = – 25 на ДСДК (метод 2). (– 23)*(–25)=575
Подготовительные работы.
Определим Амдоп =11.01001; Вмдоп =11.00111;
поправка = 00,10111.
Решение приведено в таблице 12.2
При выполнении операции умножения, используем режим экономии аппаратных средств, т.е. при сдвиге сумматора информация с младших разрядов переходит в старшие разряды регистра В.
13. Деление бинарных чисел
13.1 Метод деления бинарных чисел
Наибольшее распространение получил метод выполнения операции деления чисел путем вычитания.
На каждом шаге из делимого А вычитается делитель В (начиная со старших разрядов) столько раз N, сколько это возможно до получения остатка L меньше делителя. В частном записывается цифра, равная числу целых частей делителя N. Тогда A:B= N*B+L.
Рассмотренный метод относится к “школьным” алгоритмам деления с восстановлением остатка.
Пример: А=0,1100100=10010; В=0,1010=1010.
Решениеприведено ниже.
При этом используют правила бинарного вычитания.
В компьютере операция вычетания заменяется на сложение в дополнительном коде, поэтому алгоритм деления отличается.