
- •Министерство образования и науки украины
- •Содержание
- •Требования по оформлению контрольной работы
- •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 Контрольное задание
13.1.1 Общий алгоритм деления чисел с восстановлением остатка
Формально алгоритм описывается следующим образом. Пусть
А - делимое, В - делитель, С - частное.
A=0,α1α2...αn; B=0,b1b2...bm, C=0,c1c2...cr.
На каждом шаге определяется остаток Аi=Аi–1 – В*2-i, производится анализ, если остаток Аi>0, то старший разряд частного Ci=l, производится левый сдвиг и снос следующего разряда числа А, переход к определению следующего остатка. Если Ai<0, то Сi=0 и восстанавливается остаток Ai=Ai-1+B*2-i на следующем шаге после сдвига определяется новый остаток и т.д.
Данный алгоритм деления с восстановлением остатка реализуется на сумматорах дополнительного кода.
Структурная
схема приведена на рисунке 13.1.
Так как, частное получается в результате последовательного выполнения операции вычитания (с заменой вычитания на сложение в дополнительном коде), то применяется сумматор дополнительного кода для алгебраического сложения.
13.2 Деление чисел с фиксированной запятой с восстановлением остатка
Деление выполняется по алгоритму с восстановлением остатка на сумматоре дополнительного кода в следующей последовательности:
-определяется знак частного по формуле SgC= SgASgB;
-представление делимого и делителя в машинных кодах, когда делимое всегда, независимо от его знака, берется в прямом коде с положительным знаком, а делитель всегда, независимо от его знака, берется в дополнительном коде с отрицательным знаком;
-устранение дробной части в делителе, путем переноса запятой вправо на n разрядов (по аналогии с десятичной системой счисления). Чтобы дробь не изменилась, в делимом также переносят вправо запятую на n разрядов;
-начиная со старших разрядов, к делимому прибавляют делитель в дополнительном коде, что равносильно вычитанию из делимого делителя и анализируют знак промежуточного остатка:
1) если знак промежуточного остатка 00 (положительный), то в регистр частного РгС записывается 1, начиная со старшего разряда. Остаток сдвигается на один разряд влево (просто знаковую точку перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении. После этого, промежуточный остаток подготовлен к последующему прибавлению делимого в дополнительном коде;
2) если знак промежуточного остатка 11 (отрицательный), то в регистр частного РгС записывается 0, начиная со старшего разряда. Остаток восстанавливается путем прибавления к нему делителя в прямом коде с положительным знаком. Восстановленный остаток сдвигается влево на один разряд (точку, отделяющую знак, перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении;
-действия пункта 4 повторяются до получения машинного нуля или заданной точности вычисления (количество разрядов дроби после запятой целой части числа). Запятая дроби устанавливается в частном после сноса последнего разряда целой части делимого.
-результат деления представлен в регистре частного в прямом коде. Знак результату присваивается в соответствии с пунктом 1.
Пример. Разделить числа А= – 0.100111 и В= – 0.11. Разрядность , регистров =6.
Решение: 1.Определяем знак частного: SgC=l l=0. Знак положительный.
2.Записываем машинные изображения чисел.
Ампр. = 00.100111; Вмпр. = 11.11; Вмдоп.= 11.01;
3.Выполнить последовательность действий над числами по методу алгоритма с восстановлением остатка (таблица 13.1).
В таблице 13.1 вертикальными стрелками показаны сносы последующих разрядов делимого в промежуточные остатки. Горизонтальные стрелки отражают разряды записи результата в регистр частного Рг.С. Единицы переполнения, получаемые после суммирования, пропадают, т. к. используется сумматор дополнительного кода. Вместо выполнения операции левого сдвига остатков, переносится на один разряд вправо точка, отделяющая знак числа, при этом, первый разряд знака пропадает. Что равносильно сдвигу.