Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример выполения ТРЗ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
78.33 Кб
Скачать
  1. Выполнить, используя результаты работы по заданию 3, арифметическую операцию умножения чисел:

(C1) * (C2),

представленных с плавающей запятой в формате n = 5 со знаком, k = 4 со знаком.

Решение

С1 : m1 пр = 11000, p1 = 0011.

С2 : m2 пр = 11111, p2 = 0101.

  1. Найдем произведение мантисс m1 * m2. Прежде всего, проверим их на равенство нулю. Так как мантиссы чисел С1 и С2 не равны 0, то переходим к следующему этапу.

  2. Умножение мантисс производим методом умножения, начиная с младших разрядов множителя, со сдвигом суммы частичных произведений вправо при неподвижном множимом.

Перемножаем модули мантисс, а произведению присваивает знак «плюс», если знаки сомножителей одинаковы, или знак «минус», если знаки разные.

|m1пр| = 01000 – множимое;

|m2пр| = 01111 – множитель.

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

+

0

0

0

0

0

исходное значение суммы частичных произведений (Sm)Sm после обработки 0-го разряда

0

1

0

0

0

1

0-й (младший) разряд множителя (|m2|) m2| равен 1, прибавляем |m1|

0

1

0

0

0

Sm, сдвиг на 1 разряд вправо

+

0

0

1

0

0

Sm после обработки 0-го разряда

0

1

0

0

0

1-й разряд | m2| равен 1, прибавляем |m1|

0

1

1

0

0

Sm, сдвиг на 1 разряд вправо

+

0

0

1

1

0

Sm после обработки 1-го разряда

0

1

0

0

0

2-й разряд | m2| равен 1, прибавляем |m1|

0

1

1

1

0

Sm, сдвиг на 1 разряд вправо

+

0

0

1

1

1

Sm после обработки 2-го разряда

0

1

0

0

0

3-й разряд | m2| равен 1, прибавляем |m1|

0

1

1

1

1

Sm, сдвиг на 1 разряд вправо

0

0

1

1

1

Sm после обработки 3-го разряда

|mрез пр| = 00111.

Так как сомножители имеют одинаковые знаки, то произведению присваиваем знак «плюс», т.е.

mрез пр = 00111.

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

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

m’рез пр = 01110, p’1пр = p1пр – 1 = 0010.

  1. Найдем порядок результата как сумму порядков сомножителей.

р’1пр = 0010; р2gh = 0101; pрез пр = р’1пр + р2пр

+

0

0

1

0

пр

0

1

0

1

пр

0

1

1

1

пр

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

pрез пр = 0111.

Запишем результат умножения чисел С1 * С2:

mрез пр = 01110, pрез пр = 0111.

С1 * С2 = +0,111*2+111 = (+1110000)2 = (–112)10.

Выполним проверку в десятичной системе счисления:

(–4,125)10 * (–30,25)10 = (–124,78125)10.

Погрешность объясняется ограниченностью разрядной сетки.