Добавил:
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. Выравниваем порядки суммируемых чисел, для этого найдем разность порядков

р = р1 – р2 = р1 + (– р2)

1)пр = 0011;

(– р2)пр = 1101; (– р2)обр = 1010; (– р2)доп = 1011.

+

0

0

1

1

пр

1

0

1

1

доп

1

1

1

0

доп

р доп = 1110; р обр = 1101; р пр = 1010; р = – 2.

Поскольку р < 0, сдвигаем мантиссу числа С1 вправо на два разряда:

m’1пр = m1пр  2-2 = 10011.

Порядок обоих чисел принимаем равным р’1пр = р2пр = 0101.

  1. Суммируем мантиссы чисел: m1 + m2.

Мантиссы обоих чисел отрицательны, поэтому представим их в дополнительном коде.

m’1доп = 11110, m2доп = 10001

+

1

1

1

0

1

доп

1

0

0

1

0

доп

1

0

1

1

1

1

доп

Тогда mрез доп= 01111; ррез пр = р’1 = р2 = 0101.

  1. Анализируем результат на нарушение нормализации. Имеет место нарушение нормализации влево, так как был выполнен только один перенос из знакового разряда.

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

m’рез доп = 10111; m’рез пр = 11001; р’рез пр = ррез+1 = 0110.

Сумма чисел С1 и С2 с плавающей запятой в формате m = 5 со знаком, k = 4 со знаком равна: С1 + С2 = (– 0,1001 . 2110)2= (– 100100)2 = (–36)10.

Проверка: (–4,125)10 + (–30,25)10 = (–34,375)10.

Небольшая разница в результатах объясняется ограниченностью разрядной сетки.

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

(C1) - (C2),

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

Решение

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

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

Операция вычитания отличается от сложения искусственным изменением знака вычитаемого на обратный:

С1 – С2 = С1 + (– С2).

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

р = р1 – р2 = р1 + (– р2)

1)пр = 0011;

(– р2)пр = 1101; (– р2)обр = 1010; (– р2)доп = 1011.

+

0

0

1

1

пр

1

0

1

1

доп

1

1

1

0

доп

р доп = 1110; р обр = 1101; р пр = 1010; р = – 2.

Поскольку р < 0, сдвигаем мантиссу числа С1 вправо на два разряда:

m’1пр = m1пр  2-2 = 10010.

Порядок обоих чисел принимаем равным р’1пр = р2пр = 0101.

  1. Находим разность мантисс чисел: m’1 – m2 = m’1 +(– m2).

Мантисса m’1 отрицательна, поэтому представим ее в дополнительном коде:

m’1доп = 11110.

Мантисса m2 также отрицательна, следовательно, величина (– m2) положительна, для ее представления будем использовать прямой код:

(– m2)пр = 01111.

Выполним сложение кодов

+

1

1

1

1

0

доп

0

1

1

1

1

пр

1

0

1

1

0

1

пр

Тогда mрез пр = 01101; ррез пр = р’1 = р2 = 0101.

  1. Анализируем результат на нарушение нормализации. Нарушения нормализации влево нет, так как при выполнении сложения были выполнены оба переноса: и в знаковый разряд, и из знакового разряда. Нарушения нормализации вправо также нет, о чем свидетельствует старший значащий разряд результата, равный единице.

Мы получили нормализованный результат.

mрез пр = 01101; ррез пр = 0101.

С1 – С2 = (+0,1101 * 2101 )2 = (11010)2=(26)10.

Проверка: (-4,125)10 – (–30,25)10 = (26,125)10.

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