Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПТЦА-1-2004(Комп.логика).doc
Скачиваний:
256
Добавлен:
07.02.2016
Размер:
7.96 Mб
Скачать

14 Деление чисел с фиксированной запятой без восстановления остатка

14.1 Алгоритм деления без восстановления остатка

Метод деления бинарных чисел без восстановления промежуточных остатков выполняется в последовательности:

-определить знак частного по формуле SgC= SgASgB;;

-представить числа (операнды) в дополнительном коде в машинном изображении, делимое (всегда), независимо от его знака, берется в прямом коде с положительным знаком, а делитель (всегда), независимо от его знака, берется в дополнительном коде с отрицательным знаком;

-присвоить сумматору значение См:=Амдоп , РгВ := Bмдoп; РгС:=0;

-устраняем дробную часть в делителе, перенося запятую вправо на n разрядов (по аналогии с десятичной системой счисления) и, чтобы дробь не изменилась, в делимом также переносим вправо запятую на n разрядов;

-начиная со старших разрядов, к делимому прибавляют делитель в дополнительном коде, что равносильно вычитанию из делимого делителя и анализируют знак промежуточного остатка:

1) если знак промежуточного остатка 00 (положительный), то в регистр частного РгС записывается 1, начиная со старшего разряда. Остаток сдвигается на один разряд влево (знаковую точку перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении. После этого, промежуточный остаток подготовлен к последующему прибавлению делимого в дополнительном коде;

2) если знак промежуточного остатка 11 (отрицательный), то в регистр частного Рг.С записывается 0, начиная со старшего разряда. Остаток сдвигается на один разряд влево (знаковую точку перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении. После этого, промежуточный остаток подготовлен к последующему прибавлению к нему делимого в прямом коде со знаком 00;

-действия предыдущего пункта повторяются до получения машинного нуля или заданной точности вычисления (количество разрядов дроби после запятой целой части числа). Запятая дроби устанавливается в частном после сноса последнего разряда целой части делимого.

- знак результату присваивается в соответствии с пунктом 1. Результат деления представлен в регистре частного в прямом коде.

ПРИМЕР. Разделить на сумматоре дополнительного кода числа:

А= 16,25; В= –3,25.

РЕШЕНИЕ: -определяем знак частного 0  1 =1. В старшие разряды регистра частного заносим значение отрицательного знака - 11;

-устанавливаем регистры РгА, РгВ и См в нулевое (исходное) состояние, очистив их от предыдущей информации;

-преобразуем десятичные числа в бинарные, прямые и дополнительные коды.

Апр.=00.10000,01; Впр.=11.11,01; Впр.вос.=00.11,01; Вмдоп.= 11.00,11

Для вычитания используем Вмдоп.= 11.00,11.

Для восстановления отрицательного остатка берем Впр.вос.=00.11,01. .

Решение приведено в таблице 14.1.

14.2 Деление чисел с плавающей запятой

При делении чисел представленных в формате с плавающей запятой, деление выполняют над мантиссой mс = ma /mB, а порядки вычитаются Рс = Ра - РB.

Деление мантисс производится в таком же порядке, как и в формате с фиксированной запятой. При этом, используются методы с восстановлением остатка и без восстановления остатка. Результату присваивается порядок Рс.