Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВССиТ. Лаб-раб-2 / Лабораторная работа-2.doc
Скачиваний:
22
Добавлен:
02.06.2015
Размер:
69.63 Кб
Скачать

Лабораторная работа № 2. Тема: Представление чисел и арифметические операции в прямом, обратном и дополнительном кодах в машинах с плавающей запятой

Цель – освоить арифметические основы компьютерных операций при представлении чисел с плавающей запятой

Задание:

  1. Произвести В МАШИНАХ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ алгебраическое сложение двоичных чисел А+В - в дополнительном коде, А+С - обратном коде , В+С - в модифицированном дополнительном коде, С + D - в модифицированном обратном коде.

Варианты заданий представлены в таблице 2.

Табл.2

№ варианта

А

B

C

D

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

23.11 14.66 17.36 23.23 32.12 10.14 15.32 21.56 22.47 19.32 14.71 15.73 17.43 23.81 32.92 10.83 15.95 21.65 22.75 19.75

-8.24 -9 .35 -7 .46 -6 .77 -17 .31 -5 .23 -7 .03 -9 .54 -6 .14 -4 .26 -8 .97 -5 .48 -7 .59 -8 .71 -11 .32 -3.23 -7 .74 -5 .56 -7 .15 -8 .27

-0.91 -0.81 -0.72 -0.92 -0.71 -0.81 -0.91 -0.51 -0.72 -0.83 -0.91 -0.61 -0.72 -0.82 -0.91 -0.81 -0.61 -0.72 -0.82 -0.71

-40.15 -37.17 -29.23 -45.32 -47.17 -36.15 -31.21 -34.22 -26.19 -27.18 -29.15 -23.21 -30.22 -37.16 -43.14 -27.15 -28.17 -41.23 -35.32 -38.19

21 22 23 24 25

32.92 10.83 15.95 21.65 22.75

-4 .26 -8 .97 -5 .48 -7 .59 -8 .71

-0.92 -0.71 -0.81 -0.91 -0.51

-23.21 -30.22 -37.16 -43.14 -27.15

Указания к выполнению:

  1. Прочитать теорию о сложении чисел в машинах с плавающей запятой.

  2. Вспомнить правила перевода дробных чисел в двоичную систему счисления (СС) и обратно. « Для перевода в двоичную СС число умножается на 2 и выделенные целые части записываются в прямом порядке. Для перехода из двоичной СС в десятичную число записывается как полином…» Более подробно смотри Компьютерная арифметика –pdf- файл или Системы счисления в Приложении 1.

  3. Перевести в двоичную СС данные числа своего варианта.

    1. Записать числа в виде мантиссы и порядка в прямом коде.

    2. Выровнять порядки.

    3. Записать числа в дополнительном или обратном коде.

  4. Разобрать примеры , приведенные в Приложении 2.

  5. Выполнить сложение в требуемом по заданию коде.

  6. Провести проверку результата.

  7. Ответить на контрольные вопросы.

  8. Оформить отчет по лабораторной работе.

Сложение чисел в машинах с плавающей запятой

Существует естественная и нормальная форма представления чисел. При естественной форме место запятой, отделяющей целую часть числа от дробной, постоянно для всех чисел, с которыми работает цифровая машина,

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

Чтобы уяснить сущность представления числа в нормальной форме, обратимся к конкретному примеру. Возьмем число 525,34 в десятичной системе счисления. Это число можно представить в виде произведения двух сомножителей:

525,34 = 52,534 101

или

525,34 = 0,052534 104.

Очевидно, в общем случае всякое число N можно записать в виде произведения двух сомножителей:

N = m q p.

где m – дробное число;

p – целое число;

q – основание системы счисления.

Число N считается представленным в нормальной форме, если первый множитель m является правильной дробью, т. е. выполняется условие |m|<1. В таком случае множитель m называют мантиссой, а показатель степени p – порядком числа.

Число 525,34 для представления в нормальной форме необходимо преобразовать следующим образом:

525,34 = 0,52534 103.

Пусть в цифровой машине для изображения мантиссы отведено пять цифровых разрядов, а для изображения порядка – два. Тогда в нормальной форме число 525,34 будет записано так:

+ 52534 + 03.

Следует заметить, что изображение числа в нормальной форме неоднозначно, справедливы и следующие записи:

525,34 = 0,052534 104

525,34= 0,0052534 105 и т. д.

Порядок числа может быть не только положительным, но и отрицательным. Так, число 0,003427 можно представить в виде произведения:

0,003427 = 0,3427 10-2.

Соответственно запись числа в нормальной форме будет иметь следующий вид:

+ 3427 – 02.

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

Например, число в двоичной системе счисления 1101,01 = 0,110101 10100. Здесь 10 – основание двоичной системы счисления. В нормальной форме число запишется так:

+ 110101 + 100.

Различают нормализованные и ненормализованные нормальные числа. Если в первом разряде мантиссы стоит цифра, отличная от нуля, число называют нормализованным, если же эта цифра – нуль, число называют ненормализаванным. Желательно хранить числа в машине в нормализованном виде, так как при этом не теряются последние разряды мантиссы.

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

Мантиссы обычно складываются в одном из модифицированных кодов по правилам, рассмотренным выше. При этом могут встретиться три случая, которые мы рассмотрим на конкретных примерах.

Все записи даны в двоичной системе счисления применительно к ячейке машины с плавающей запятой. Вычисления производятся в модифицированном обратном коде.

Случай 1. Сложение происходит без переполнения разрядной сетки и нарушения нормализации.

В ячейках машины имеются следующие записи:

слагаемое Х 1 100100110 0 011

слагаемое Y 0 110001101 0 101

Сложение выполняется в несколько этапов.

Первый этап. Сдвиг вправо слагаемого Х (денормализация) с целью уравнивания его порядка 011 с порядком 101 слагаемого Y.

После сдвига запись слагаемого Х будет иметь вид:

Х 1 001001001 0 101.

Второй этап. Перевод мантисс Х и Y в модифицированный обратный код:

мантисса Х 11 110110110;

мантисса Y 00 110001101.

Третий этап. Сложение мантисс: Х 11 110110110+

Y 00 110001101

100 101000011+

'---------------® 1

X + Y 00 101000100.

Четвертый этап. Перевод суммы X + Y в прямой код 0 101000100 и запись результата:

Х+ Y 0 101000100 0 101.

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

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

В ячейках машины имеются записи:

слагаемое Х 0 100100110 0 100

слагаемое Y 1 100101010 0 110

Сложение выполняется в пять этапов.

Первый этап. Уравнивание порядков. После сдвига первое слагаемое запишется в ячейке следующим образом:

Х 0 001001001 0 110.

Второй этап. Перевод обеих мантисс в модифицированный обратный код:

Х 00 001001001;

Y 11 011010101.

Третий этап. Сложение мантисс:

+ Х 00 001001001

Y 11 011010101

Х + Y 11 100011110

Четвертый этап. Перевод результата в прямой код:

X + Y 1 011100001 0 110.

Пятый этап. Нормализация и запись результата.

Х + Y 1 111000010 0 101.

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

а) причиной переполнения является то, что сумма |Х+Y|>=1. Очевидно, если бы после уравнивания порядков мантиссы были дополнительно сдвинуты на один разряд вправо, переполнения бы не произошло;

б) признаком переполнения является наличие разных цифр в знаковых разрядах, причем комбинация 01 указывает на то, что сумма положительна, а комбинация 10 – на то, что сумма отрицательна. Следовательно, по левому из двух знаковых разрядов можно сразу установить знак суммы (0 à (+); 1 à ( – ) ).

Исходя из этих обстоятельств, можно сразу получить сумму без повторных вычислений. Для этого нужно сдвинуть результат сложения на один разряд вправо (увеличив при этом порядок на единицу), а затем во второй знаковый разряд занести цифру, стоящую в левом разряде. Эти операции машина выполняет автоматически, после того как устройство сравнения выработает сигнал, свидетельствующий о наличии разных цифр в знаковых разрядах. Далее машина работает, как и в предыдущих случаях. Данный случай переполнения разрядной сетки принято называть нарушением нормализации влево.

Пример.

Х 1 101011011 0 110;

Y 1 110001101 0 101.

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

Y 1 011000110 0 110.

Второй этап. Перевод мантисс в модифицированный обратный код:

Х 11 010100100;

Y 11 100111001.

Третий этап. Сложение мантисс:

Х 11 010100100

Y 11 100111001

110 111011101+

'---------------® 1

Х+Y 10 111011110

Произошло нарушение нормализации влево.

Четвертый этап. Сдвиг результата вправо:

11 011101111.

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

1 10001 0000 0 111.

Вследствие сдвига вправо (четвертый этап) порядок увеличился на единицу (был 110, стал 111).

Соседние файлы в папке ВССиТ. Лаб-раб-2