Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf_selfwork.doc
Скачиваний:
18
Добавлен:
27.11.2016
Размер:
356.35 Кб
Скачать

Нормализация

-100010,000 -0,100010000Е+110

-1100,01010 -0,110001010Е+100

Размещение в разрядных сетках

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

-34,12

0

0

0

1

1

0

1

1

0

0

0

1

0

0

0

0

-12,34

0

0

0

1

0

0

1

1

1

0

0

0

1

0

1

0

знаковые разряды

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

Прямые коды слагаемых

0

0

0

1

1

0

1

0

0

1

0

0

Обратные коды слагаемых

0

0

0

1

1

0

1

1

1

0

1

1

Сумма

0

0

0

0

1

0

Поскольку сумма положительна, большим является первый порядок (у слагаемого –34,12), а потому на следующем шаге работа ведется со вторым слагаемым –12,34;

  1. выравнивание порядков и сдвиг мантиссы для слагаемого с меньшим порядком:

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

Прямые коды слагаемых

0

0

0

1

0

0

0

0

0

0

1

0

Сумма (второй порядок)

0

0

0

1

1

0

Сдвиг мантиссы

1

1

1

0

0

0

1

0

1

0

1

0

0

1

1

0

0

0

1

0

Т

(42)

аким образом, второе слагаемое (с меньшим порядком) приобретает вид:

-12,34

0

0

0

1

1

0

1

0

0

1

1

0

0

0

1

0

  1. сложение мантисс. Поскольку обе мантиссы отрицательны, сложение выполняется в обратных кодах:

Прямые коды слагаемых

1

1

0

0

0

1

0

0

0

0

1

0

0

1

1

0

0

0

1

0

Обратные коды слагаемых

1

0

1

1

1

0

1

1

1

1

1

1

1

0

0

1

1

1

0

1

Сумма

1

0

1

0

0

0

1

1

0

1

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

0

0

0

1

1

0

1

1

0

1

1

1

0

0

1

0

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

-0,101110010Е+6= -101110,01= -(1*25+1*23+1*22+1*21+1*2-2) =

-(32+8+4+2+0,25) = -46,25.

7) определим полученную погрешность вычисления. Для этого сложим исходные числа: -34,12+(-12,34)=-46,46. Как видно по результату, имеем погрешность:

-46,46 - (-46,25) = -0,21

11. Сложение вещественных чисел в дополнительных кодах

Задание к работе: выполнить сложение в дополнительном коде двух отрицательных чисел из предыдущего задания. Разрядная сетка имеет структуру 6х10, где 6 – число разрядов порядка, 10 – число разрядов мантиссы. При переводе дробной части слагаемых ориентироваться на необходимость заполнения разрядной сетки мантиссы.

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

Решение задачи

Используем результаты первых этапов предыдущего задания.

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

  1. сложение мантисс. Поскольку обе мантиссы отрицательны, сложение выполняется в дополнительных кодах:

Прямые коды слагаемых

1

1

0

0

0

1

0

0

0

0

1

0

0

1

1

0

0

0

1

0

Обратные коды слагаемых

1

0

1

1

1

0

1

1

1

1

1

1

1

0

0

1

1

1

0

1

Дополнительные коды слагаемых

1

0

1

1

1

1

0

0

0

0

1

1

1

0

0

1

1

1

1

0

Сумма

1

0

1

0

0

0

1

1

1

0

Полученная единица переноса при сложении знаковых разрядов отбрасывается.

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

Обратный код суммы

0

0

0

1

1

0

1

0

1

0

0

0

1

1

0

1

Прямой код суммы

0

0

0

1

1

0

1

1

0

1

1

1

0

0

1

0

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

-0,101110010Е+6= -101110,01= -(1*25+1*23+1*22+1*21+1*2-2) =

-(32+8+4+2+0,25) = -46,25.

  1. определим полученную погрешность вычисления. Поскольку результат совпадает с предыдущей задачей, имеем такую же погрешность -0,21

1Здесь и далее между кодовыми комбинациями введены пробелы только для удобства восприятия

Соседние файлы в предмете Информатика