Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Операции с числами с плавающей запятой
Раздел: Рефераты по математике
Тип: реферат Добавлен 03:25:06 24 марта 2008 Похожие работы
Просмотров: 126 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

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

1. Производится выравнивание порядков чисел. Порядок меньшею (по модулю) числа принимается равным порядку большего числа, а мантисса меньшего числа сдви­гается вправо на число S-ичных разрядов, равное разности порядков чисел.

2. Производится сложение (вычитание) мантисс, в ре­зультате чего получается мантисса суммы (разности).

3. Порядок результата принимается равным порядку большего числа.

4. Полученная сумма (разность) нормализуется.

Примем, что числа с плавающей запятой имеют основание порядка S = 16.

Первое слагаемое (уменьшаемое) поступает на входной регистр Рг1, второе слагаемое (вычитаемое) — на входной регистр Рг3. Знаки слагаемых хранится в триггерах зна­ков Тг3н1 и Тг3н2. Смещенные порядки слагаемых пере­сылаются в регистры РгС и РгD. Схема СОЛО применяется для сравнения и выравнивания порядков слагаемых. Сум­матор См, его входные регистры РгА и РгВ и выходной ре­гистр РгСм используются при сложении (вычитании) ман­тисс, а также при передаче мантисс в процедурах выравни­вания порядков и нормализации результата.

Операция сложения (вычитания) может быть подразде­лена на следующие этапы: 1) прием операндов, 2) выравни­вание порядков, 3) сложение мантисс и 4) нормализация результата.

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

РгЗ: = ШИВх, РгВ: = 0, Тг3н1: = Рг3[0]

< прием X, установка в 0 входного регистра сумматора для Х и фиксация знака Х в Тг3н1>;

Рг1: = ШИВых, РгА: = 0, Тг3н2: = если сложение то Рг1[0] иначе < прием Y, установка в 0 вход­ного регистра для Y, фиксация знака Y в ТгЗн2 при сложении либо противоположного знака при вычита­нии >;

Выравнивание порядков начинается с их сравнения. Ман­тисса числа с меньшим порядком при выравнивании сдви­гается вправо на число разрядов, равное разности порядков. Поскольку рассматриваемые числа с плавающей запятой имеют S = 16, сдвиг осуществляется шестнадцатеричными разрядами, т. е. каждый сдвиг производится на четыре двоичных разряда.

При сравнении порядков возможны пять случаев:

1) (m— число разрядов мантиссы). В ка­честве результата суммирования сразу же может быть взято первое слагаемое, так как при выравнивании порядков все разряды мантиссы второго слагаемого принимают нулевое значение;

2) . В качестве результата суммирования может быть взято второе слагаемое;

3) . Можно приступить к суммированию мантисс;

4) Мантисса второго слагаемого сдвигается на разрядов вправо, затем производится сум­мирование мантисс;

5) Перед выполнением сумми­рования мантисс производится cдвиг на разрядов вправо мантиссы первого слагаемого.

За порядок результата при выполнении суммирования принимается больший из порядков операндов.

Выравнивание порядков осуществляется следующим образом. Смещенный порядок числа Х из РгЗ передается в регистр РгD, РгСОЛО и в счетчик, соединенный с выхо­дом РгСОЛО. Затем в РгС передается смещенный поря­док числа Y:

РгС: = О, PD [0]: = 0, PгD [1 ¸ 7] := Рг3 [1 ¸ 7];

РгСОЛО: = РгС Å PгD;

Сч1: = РгСОЛО;

РгС [О]: = 0, РгС [1 ¸ 7] = Pг [1 ¸ 7];

После этого начинается сравнение порядков чисел Х и Y на СОЛО и сдвиг мантиссы числа с меньшим порядком вправо,

Для того чтобы учесть случаи 1 и 2, возникающие при сравнении порядков, и не делать лишних сдвигов ман­тиссы, превратившейся в процессе выравнивания порядков в 0, на счетчике циклов СчЦ фиксируется предельное число сдвигов, равное количеству шестнадцатеричных цифр ман­тиссы:

СчЦ: = 6;

При выполнении сдвига на один шестнадцатеричный разряд содержимое СчЦ уменьшается на 1. При СчЦ = 0 сдвиги прекращаются и в качестве результата берется большее слагаемое.

Микропрограмма выравнивания порядков:

МК:

если РгС > РгD то МК1 иначе если РгС = РгD то МКЗ иначе МК2;

MK1:

PгB [8 ¸ 31]: = PгЗ [8 ¸ 31];

РгСм: = П(4) См, РгСм [0 ¸ 3]: = 0, Сч1 := Сч1+1

<сдвиг вправо мантиссы Х и увеличения порядка X, первоначально занесенного в РгСч1, на 1>;

Рг3[8 ¸ 31]:=РгСм[8 ¸ 31]; РгD:=Сч1, СчЦ: = СчЦ - 1

<фиксация сдвинутой мантиссы Х и увеличенного порядка X, уменьшение на 1 числа цифр мантиссы X, не вышедших за разрядную сетку>;

если СчЦ ¹ 0 то МК;

РгВ: = 0, РгА: = Рг1, РгСм := См;

ШИВых: = РгСм;

конец

<выдача Y в качестве результата—случай 2 при сравнении порядков>;

МК2:

РгА[8 ¸ 31] :=Рг1 [8 ¸31];

РгСм: = П (4) См, РгСм [0 ¸ 3] : = 0, Сч1 := Сч1-1

<сдвиг вправо мантиссы Y и уменьшение большего порядка X, первоначально занесенного в Сч1, на 1. Уменьшение производится до тех пор, пока порядок Х не сравняется с порядком Y, после чего в качестве порядка результата принимается сохраненный в Рг3 исходный порядок Х>;

Рг1 [1 ¸ 31]: = РгСм [8 ¸ 31], РгD: = Сч1, СчЦ: = СчЦ - 1,

если СчЦ ¹ 0, то МК4 иначе РгА: =0, РгВ: =Рг3, РгСм: =См, ШИВых: = РгСм,

конец

<выдача Х в качестве результата — случай 1 при сравнении порядков>;

МК4:

если РгС > PгD то МК2;

PгD[0]: = 0, РгD[1 ¸ 7]: = Рг3[1 ¸ 7], РгС = 0;

РгСОЛО : = РгС Å PгD;

Сч1: = РгСОЛО

<фиксация порядка Х после завершения выравни­вания в качестве порядка результата>;

МКЗ:

РгСм: = 0, Pгl [0 ¸ 7] : = РгСм, РгЗ [0 ¸ 7] : = РгСм

<обнуление поля порядка слагаемых>;

После выравнивания порядков модули мантисс хра­нятся в Pгl и РгЗ в разрядах с 8-го по 31-й, их знаки в Тг3н2 и Тг3н1, а порядок результата в Сч1.

Сложение мантисс. Анализируются знаки мантисс и при равенстве знаков модули мантисс складываются. Если оказывается, что См [7] = 1, то возникло переполнение при сложении мантисс. В случае переполнения мантисса суммы сдвигается на четыре двоичных разряда (один шестнадцатеричный разряд) вправо, а порядок увеличивается на 1 (Сч1: = Сч1 + 1). Если после этого Сч1 [0] = 1, то формируется признак прерывания из-за переполнения по­рядка. Если переполнения нет, то в РгСм формируется ре­зультат операции, для чего содержимое Сч1 [1 ¸ 7] за­носится в РгСм [1 ¸ 7], в РгСм [0] передается знак, а в РгСм [8 ¸ 31]— мантисса суммы.

При различных знаках мантисс отрицательная мантисса передается на входной регистр сумматора в обратном коде и производится суммирование ее с прямым кодом положи­тельной мантиссы и 1, прибавляемой к младшему разряду сумматора. Знак результата фиксируется в триггере знака. От полученного результата, если он отрицателен, берется его модуль. Если результат нормализован (См [8 ¸ 11] ¹ 0), то на РгСм заносятся знак результата (по значению триггера знака), порядок по значению Сч1 и модуль мантиссы.

Если результат не нормализован и нет исчезновения значимости (мантисса не равна 0), производится нормали­зация. Мантисса результата сдвигается влево и одновре­менно уменьшается порядок результата (Сч1: = Сч1 - 1). При отрицательном переполнении порядка (Сч1 [0] = 1) формируется признак исчезновения порядка. Если нормализация завершается без исчезновения порядка, фор­мируется результат операции из кода знака, порядка и мантиссы.

Микропрограмма процедуры сложения мантисс:

если ТгЗн ¹ Тг3н2 то МЗ;

РгА: = Рг1, РгВ: = РгЗ;

РгСм: = См;

если См[7] = 1 то М2;

М1:

РгСм [ 1 ¸ 7]: = Сч1 [1 ¸ 7];

РгСм [0] :== если Тг3н1=0 то 0 иначе 1;

М:

ШИВых: = РгСм;

конец ;

М2:

Сч1:=Сч1+1, РгСм := П(4)См, РгСм[0 ¸ 3]:=0;

если Сч1[0]=0 то М1 иначе прерывание из-за переполнения порядка;

МЗ:

если Тг3н1=0 то РгА :=, РгВ: = РгЗ иначе

РгА : = Рг1, РгВ: = ;

РгСм :=РгА+РгВ +1;

если См[0]=0 то M4;

Рг3:= РгСм;

РгА :=0, РгВ: =;

РгСм:= РгА +РгВ +1;

М4:

ТгЗн1 := РгЗ [0];

М5:

если См [8 ¸ 11] ¹ 0 то M1;

если См ¹ 0 то М6;

РгСм: = 0, прерывание из-за потери значимости;

M6:

Сч1:=Сч-1, РгСм := Л(4)См, РгСм[28¸31]: = 0;

РгЗ: = РгСм;

РгВ : = РгЗ, РгА: = 0;

РгСм: = См;

если Сч1[0]=0 то М5;

РгСм: = 0, прерывание из-за исчезновения порядка;

Сложение и вычитание выполняются приближенно, так как при выравнивании по­рядков происходит потеря младших разрядов одного из слагаемых. В этом случае погрешность всегда отрицательна и может доходить до единицы младшего разряда. Чтобы уменьшить погрешность, применяют округление резуль­тата. Для этого может быть использован дополнительный разряд сумматора, в который после выполнения суммиро­вания добавляется 1.





Анализ программы на примерах

Y1 = 0 1001101 110100101110011011100011 = 0 4D D2E6E3

X1 = 1 1001011 110001100101110110100111 = 1 4B C65DA7

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

МК: РгС>РгD (01001101>01001011) переход на МК1

MК1: сдвигаем мантиссу Х1 вправо на 4 разр. получаем 000011000110010111011010 и увел. порядок Х1 на 1 получаем 01001100 переход на МК

МК: РгС>РгD (01001101>01001100) переход на МК1

МК1: сдвигаем мантиссу Х1 вправо на 4 разр. получаем 000000001100011001011101 и увел. порядок Х1 на 1 получаем 1001101 переход на МК

МК: РгС=РгD (01001101=01001101)

Порядки выравненны.

Сложение мантисс:

ТгЗн1 ¹ ТгЗн2 переход на М3

М3: ТгЗн1 ¹ 0 Þ РгВ = (00110010 111111110011100110100010); РгСм=РгА + РгВ + 1 = 01011011 110100100010000010000110;

См[0] = 0 Þ переход на М1

М1: РгСм [ 1 ¸ 7]: = Сч1 [1 ¸ 7] = 1001101;

РгСм [0] :== если Тг3н1=0 то 0;

ШИВых: = РгСм = 0 1001101 110100100010000010000110 = 0 4D D22086 ;

КОНЕЦ.

Y2 = 0 1001100 110100101110011011100011 = 0 4С D2E6E3

X2 = 0 1001101 110001100101110110100111 = 0 4D C65DA7

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

РгD > РгС Þ переход на МК2

МК2: сдвигаем мантиссу Y2 вправо на 4 разр. получаем 000011010010111001101110; уменьшаем порядок Х2 на 1 получаем 1001100; РгD = РгС

Порядки выравненны.

Сложение мантисс:

ТгЗн1 = ТгЗн2 Þ См = РгА + ргВ = 00000000 110100111000110000010101; переход на М1

М1: РгСм [ 1 ¸ 7]: = Сч1 [1 ¸ 7] = 1001110;

РгСм [0] :== если Тг3н1=0 то 0;

ШИВых: = РгСм = 0 1001101 110100111000110000010101 = 0 4D D38C15;

КОНЕЦ.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений06:45:09 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
16:08:45 24 ноября 2015

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

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(150913)
Комментарии (1842)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru