Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример вычисления для двоичных чисел




Алгоритм действий над мантиссами

Алгоритм действий над порядками

Операции сложения и вычитания чисел в форме с плавающей запятой

Формат числа с плавающей запятой рассматривался выше в разделе 1.1.

В общих чертах алгоритм выполнения операций сложения и вычитаниясоответствует процедурам ручного счета.

Рассмотрим g = a ± b

a = A ×10a

b = B ×10b

g = S ×10c

A,B,S – нормализованные мантиссы: 1/10 £ A < 1,

10 – основание системы счисления;

a,b,c – порядки.

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

a = -0.9572 ×10-4 a = -4 А=-0.9572

b = 0.1567 ×10-3 b = -3 В= 0.1567

g = a + b

1) Находится разность порядков:

z = a – b = -4 + 3 = -1 так как z < 1, то a < b

2) Уравнивание порядков чисел происходит за счет того, что сдвигается вправо мантисса числа с меньшим порядком, т.е А = -0.09572

3) Порядок результата приравнивается порядку большего числа с=в= -3

4) Выполняется сложение мантисс

А = - 0.09572

+ В = 0.15670

S = 0.06098

5) Нормализация мантиссы, т.е. мантисса сдвигается влево на 1 разряд

S = 0.60980

6) Коррекция порядка c= – 4

7) Окончательный результат

g = 0.60980 ×10-4

В АЛУ для выполнения операций с плавающей запятой имеются практически две части:

- АЛУ для действий над порядками;

- АЛУ для действий над мантиссами.

Эти АЛУ имеют разную разрядность, различаются алгоритмами, но взаимосвязаны.

1) Прием из ОЗУ порядков a и b;

2) Сравнение порядков r = a - b;

3) Выравнивание порядков чисел

если r ≥ 0 (a ³ b), то сдвиг B на |r | разрядов вправо, c = a;

иначе (a < b) сдвиг A на |r | разрядов влево, c = b.

Преобразование параллельного кода разности порядков в число-импульсный код (количество сдвигов) можно осуществить с помощью реверсивного счетчика.

4) при нормализации мантисс одновременно корректируется

порядок результата. Если выполняется сдвиг вправо, то с=с+1.

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

Соответствующие сигналы поступают из АЛУ мантисс.

1) Прием мантисс A и B из ОЗУ;

2) Выравнивание порядков за счет того, что мантисса меньшего числа сдвигается вправо на количество разрядов, равное | z |.

3) Находится S = A ± B;

4) Выполняется нормализация мантиссы результата. Если

| S| > 1, то сдвиг вправо S на один разряд, c=c + 1

иначе сч. сдв=0

М1: если | S| < 2-1, то сдвиг влево S на один разряд S:=S × 2-1

и коррекция порядка c=c – 1, иначе | S | ≥ 2-1 и переход к М2,

иначе если сч.сдв ≥ n, то S = 0 и переход к М2,

иначе переход к М1.

М2: выдача в ОЗУ мантиссы S и порядка с, конец.

Будем вычислять γ = α + β

α = –. 10001 · 10 010 β =. 11110 · 10 001

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

ПП, а над мантиссами – по алгоритму ПД (см. раздел 3).

1) Выполняем операции над порядками чисел:

[a] п = 0.010 [b] п = 0.001 r = |a| – |b| =. 0 1 0

. 0 0 1

. 0 0 1

Так как заем из старшего разряда z0 = 0, то r ≥ 0, а так как

ЗНr = 0, то |a| ≥ |b|, разность порядков r =.001.

Следовательно, α > β, и порядок результата [c]п=[a]п = 0.010.

Для выравнивания порядков нужно сдвигать вправо мантиссу

меньшего числа β.

2) Действия над мантиссами.

[A]п = 1.10001 [В]п = 0.11110

Сдвигаем вправо мантиссу В, получаем [В]п 2-1 = 0.01111

В соответствии с используемым алгоритмом ПД находим DМ.

Так как D =0, ЗНA = 1, ЗНB = 0, то DМ =1. Следовательно,

должно быть выполнено вычитание модулей с использованием

дополнительного кода. Находим псевдосумму в виде

S* = [| A |]п + [-| B|]д = 1 0 0 0 1

+ 1 0 0 0 1

1.0 0 0 1 0

Как видно, вышла за пределы разрядной сетки единица переноса

P0 = 1, это означает, что S* > 0 и |S| =. 0 0 0 1 0

Для нормализации выполняем сдвиг влево на три разряда

|S| =. 1 0 0 0 0, одновременно корректируется порядок

с = с – 0 1 1 = - 0 0 1

Определим знак мантиссы. Так как |А| > |В|, то ЗНS = ЗНА = 1.

Окончательный результат

γ =. 1 0 0 0 0 · 1 0-001




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 615; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.