русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 1743; Нарушение авторских прав


Рассмотрим специфику операции сложение-вычитание с плавающей запятой. Число Х, представленное в форме с плавающей запятой, имеет вид:

,

где p – порядок числа, М – мантисса, k – основание системы счисления. Если каждому числу Х однозначно соответствует пара p, k, то 1>|Mk-1, а число Х называется нормализованным.

Порядок и мантисса числа записываются в своих разрядах в виде чисел с фиксированной запятой; мантисса – в виде дробного числа с запятой перед старшим из основных разрядов, порядок – в виде целого числа с запятой после младшего разряда. Структура представления в ЭВМ числа с плавающей запятой более подробно рассмотрена в гл.I п.1. Разрядная сетка машины с плавающей запятой имеет следующий вид:

m -1 - n
± Порядок ± Мантисса
       

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

Выполнение операции сложения-вычитания чисел с плавающей запятой состоит из следующих этапов:

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

- суммирование мантисс;

- определение порядка результата;

- нормализация результата;

- округление результата.

Выравнивание порядков осуществляется путем сдвига вправо мантиссы числа с меньшим порядком. Так как сдвиг вправо эквивалентен делению мантиссы на k, то при каждом сдвиге порядок должен увеличиваться на 1. Порядок результата принимается равным порядку большего числа. В результате алгебраического сложения мантисс после выравнивания порядка получают мантиссу суммы (разности). Полученная сумма (разность) нормализуется.

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



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

а) px - py n, где n – число разрядов мантиссы, при этом в качестве результата сразу берется первое слагаемое, поскольку при выравнивании порядков все разряды мантиссы второго слагаемого принимают нулевые значения;

б) px - py < n – второе слагаемое является результатом суммирования;

в) px - py = 0 – приступают к суммированию мантисс;

г) px - py = k1 (k1 < n) – мантисса второго слагаемого сдвигается на k1 разрядов вправо, затем мантиссы суммируются;

д) py - px = k2 (k2 < n) – мантисса первого слагаемого сдвигается на k2 разрядов вправо, затем мантиссы суммируются.

Мантиссы, полученные после выравнивания порядков, складываются как двоичные числа с фиксированной запятой. При этом результат может оказаться ненормализованным. Если используются модифицированные коды, то переполнение (левое нарушение нормализации) определяется по комбинациям цифр 01 и 10 в знаковых разрядах суммы мантисс. Нормализация заключается при этом в сдвиге мантиссы результата вправо на 1 разряд. Правое нарушение нормализации определяется по комбинациям цифр 00,0 (11,1) в старшем и знаковом разрядах мантиссы результата. При этом нормализация результата заключается в сдвиге мантиссы результата влево до тех пор, пока не появится “1” (“0”) в старшем разряде сетки мантиссы.

При нормализации сдвиг вправо результата и отбрасывание его младшего разряда могут привести к большой положительной ошибке. Для уменьшения погрешности применяют округление, состоящее в использовании дополнительного разряда со стороны младших разрядов. Если в дополнительном разряде будет 1, то ее добавляют в младший основной разряд. Вследствие этого погрешность будет закономерной и не больше 2-n веса младшего разряда.

 



<== предыдущая лекция | следующая лекция ==>
Деление чисел с фиксированной запятой перед старшим разрядом | Форматы данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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