Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
оифтик 08-2012 готовый.docx
Скачиваний:
76
Добавлен:
11.05.2015
Размер:
7.45 Mб
Скачать

2.2.3. Выполнение операций деления чисел, представленных в форме с фиксированной точкой

При выполнении деления дробных чисел с ФТ в отличие от умножения возможно переполнение разрядной сетки. Поэтому необходимо следить, чтобы делимое по абсолютной величине было меньше делителя.

Признаком переполнения является «1» в знаковом разряде модуля частного, поскольку обычно операция деления производится только над модулями исходных чисел.

Операция деления выполняется в 2 этапа:

1) определение знака частного при помощи операции над знаками чисел;

2) деление модулей исходных чисел, затем округление, присвоение знака.

При выполнении операции деления в двоичной системе счисления (как и в десятичной) процесс деления сводится к многократному вычитанию сначала из делимого, а затем из остатков, умноженных на основание системы счисления (приписывание нуля справа), произведений делителя на некоторую цифру частного.

Особенность процесса деления в двоичной системе счисления состоит в том, что произведение делителя на любую цифру системы счисления (0 или 1) в этом случае равно либо 0, либо самому делителю.

Так как вычитание заменяется сложением, то можно сделать вывод, что деление в двоичной системе счисления сводится к двум микрооперациям: сложению некоторых чисел и их сдвигу.

В ЭВМ процесс деления выполняется следующим образом:

1) производится сравнение модулей делимого и делителя, а затем – остатков и делителя при помощи операции вычитания. Соотношение сравниваемых величин определяется по знаку разности;

2) производится умножение делимого, а затем – остатков на основание системы счисления сдвигом исходного числа влево на 1 разряд.

В ЭВМ применяется в основном 2 способа деления:

1) с восстановлением остатка;

2) без восстановления остатка.

Рассмотрим второй способ:

– чтобы определить цифру частного в некотором разряде, необходимо сдвинуть логически предыдущий остаток влево на один разряд, а затем алгебраически прибавить к нему модуль делителя, которому присваивается знак, противоположный знаку предыдущего остатка;

– если полученный текущий остаток положителен, то в частном проставляется 1, а если остаток отрицателен, то – 0.

Микрооперации сдвигов и алгебраических сложений повторяются до тех пор, пока в частном не получится требуемое количество цифр.

Пример 2.3

Разделить число [x1] = 0,100 на [x2]= 0,101.

1-й этап – определение знака частного: 00 = 0;

2-й этап – деление модулей |x1|/|x2|.

Таблица 2.6. Пример деления чисел с ФТ

Выполнение операций деления чисел с ФТ, представленных в ДК или ОК, имеет свои особенности. Подробно это рассмотрено в [5].

2.2.4. Выполнение операций сложения/вычитания чисел, представленных в форме с плавающей точкой

Если имеется два числа, представленных в форме с ПТ,

х1 = m1·10P1 и х2 = m2·10P2, то для того чтобы их сложить, нужно предварительно привести их к одному общему порядку, т.е. преобразовать одно из слагаемых, например, первое, следующим образом:

х1 = m1·10P1= m1*·10Pобщ, P2 = Pобщ,

тогда х1 + х2 = m1*·10Pобщ + m2·10Pобщ = (m1*+ m210Pобщ.

Преобразовывать всегда нужно меньшее слагаемое, т.к. в противном случае произойдет переполнение разрядной сетки мантиссы преобразуемого числа.

Операция сложения двух чисел с ПТ выполняется в 4 этапа.

1. Выравнивание порядков:

– меньший порядок выравнивается до большего;

– мантисса сдвигается вправо на соответствующее количество разрядов.

Практически в ЭВМ производится вычитание порядков операндов. Знак и модуль разности P1–P2 определяют соответственно, какое из слагаемых нужно преобразовать и на сколько порядков (единиц).

2. Производится преобразование мантисс в один из модифицированных кодов.

3. Мантиссы слагаемых суммируются по правилам сложения дробных чисел, в форме с ФТ.

4. В случае надобности мантисса переводится в прямой код и производится нормализация суммы, округление мантиссы.

На последнем этапе некоторые действия могут отсутствовать, например, перекодировка, если в памяти числа хранятся в ДК.

Пример 2.4

Используя модифицированный дополнительный код, сложить 2 числа:

[x1]пр = 0.101; 1.10101;

[x2]пр = 0.100; 1.11001.

Решение:

1-й этап [x2]*пр= 0.101; 1.011001 – выравнивание порядка х2 до х1;

2-й этап [m1]доп= 11.01011; [m2]доп= 11.100111;

3-й этап [m1]доп= 11.010110

[m2]доп= 11.100111

[m3] доп=110.111101

В знаковых цифрах мантиссы 1 отбрасывается, а комбинация цифр 10 показывает, что сумма денормализована влево на один разряд.

4-й этап – нормализация суммы (сдвиг вправо на один разряд):

[m3] доп=10.111101 →1.0111101;

Pобщ =0.101 + 0.001=0.110

Переводим сумму в прямой код и производим округление мантиссы до пяти разрядов.

Ответ: [x3]пр = 0.110; 1.1000011 ≈ 0.110; 1.10001.

порядок мантисса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]