<<
>>

ОБЩИЕ СВЕДЕНИЯ

Обработка числовых данных в форме с плавающей запятой считалась до недавнего времени нетипичной для микропроцессорных систем [5]. Однако расширение областей использования микропроцессоров, в частности создание микропроцессорных информационно-измерительных систем и распределенных сетей сбора данных, потребовало существенного увеличения диапазона обрабатываемых чисел при сохранении их ограниченной значности, определяемой точностью датчиков первичной информации [23, 24].

В этих условиях применение арифметики с фиксированной запятой приводит к резкому увеличению разрядности чисел, росту затрат памяти и времени выполнения программ, что снижает в целом производительность и экономичность микропроцессорных систем. Кроме того, с увеличением разрядности чисел с фиксированной запятой и усложнением алгоритмов обработки возрастает неопределенность прогнозирования вычислений и затрудняется их предварительное масштабирование, призванное гарантировать корректность и требуемую точность результатов. Эти проблемы снимает арифметика с плавающей запятой, поскольку она обеспечивает раздельное представление диапазона и точности чисел (мантиссы и порядка) и реализует их автоматическое масштабирование в процессе вычислений [13, 31, 33, 34, 47, 50, 61, 66].

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

Числа с плавающей запятой имеют следующую общую форму представления [с учетом выражений (1.1) и (1.6)]:

border=0 class="lazyload" data-src="/files/uch_group53/uch_pgroup331/uch_uch1315/image/128.jpg">

запятая фиксирована перед ее старшим цифровым разрядом, но фактическое положение запятой в представлении числа определяется независимо от мантиссы порядком т и изменяется — «плавает» — в зависимости от его величины и знака (см.

§ 1.1).

Существует много вариантов представления конкретного числа в форме с плавающей запятой. Например, смешанное число 12,34 можно представить в следующем виде: ІО2 -0,1234; ІО3-0,01234; ІО4 -0,001234 и т. п. На практике один из вариантов представления выбирают в качестве стандартного. Если мантисса удовлетворяет условию

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

Рис. 2.1. Формат /?-ичного числа с плавающей запятой

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

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

Арифметические операции над числами с плавающей запятой выполняют действия как над мантиссами, так и

над порядками, причем те и другие представлены в виде знаковых чисел в соответствии с формулами (2.2) и (2.4). Операции над порядками (сложение, вычитание, сравнение) существенно упрощаются, если вместо их знакового представления (например, в дополнительном коде) использовать беззнаковое представление в виде неотрицательных чисел, или так называемое представление со «смещенным порядком», применяемое в ряде ЭВМ [30, 61, 65]:

На практике существует большое разнообразие представлений чисел с плавающей запятой, определяемое, во-первых, выбором различных систем счисления: двоичной {R = 2) и двоично-смешанных (Q = 8, 10, 16); во-вторых, различными способами кодирования знаковых чисел мантиссы и порядка:, прямым, обратным, дополнительным- или кодом со смещением; в-третьих, различными разрядностью формата и размещением порядка, мантиссы и их знаков относительно друг друга в формате числа [30, 56, 61, 65].

Например, в ЕС ЭВМ для представления короткого формата числа с плавающей запятой отводятся 32 двоичных разряда, из которых 25 используются для представления шестнадцатеричной мантиссы в прямом коде (6 шестнадцатеричных разрядов), а 7 — для поедставления шестнадцатеричной характеристики

Рис. 2.2. Схема соответствия несмещенного т и смещенного тсм порядков

Рис. 2.3. Форматы двоичных чисел с плавающей запятой

со смещенным двоичным порядком (смещение + 64) . В данном пособии используется представление двоичных чисел с плавающей запятой со смещенным порядком и мантиссой в дополнительном коде, причем числа имеют два формата: трехбайтный обычной точности и четырехбайтный повышенной точности.

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

Заметим, что неравенства (2.8) и (2.9) получены для нормализованных чисел, округленных несимметричным способом при их представлении в «-разрядном (п = 16) формате мантиссы. В случае симметричного округления (1.9) величина бг уменьшается в два раза. Для обеспечения эквивалентной точности и диапазона в случае чисел с фиксированной запятой потребовалась бы разрядность, в шесть раз большая.

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

Табл.

2.2. Пограничные числа формата (8, 24)

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

точности первичных датчиков на уровне 0,1...0,05 %, т. е. превышает неточность представления чисел в формате (8, 16) в соответствии с формулой (2.9). Использование формата повышенной точности связано с дополнительными затратами памяти и времени работы микропроцессора и целесообразно для задач, требующих повышенной точности обработки или большего диапазона представления чисел. Числа с плавающей запятой являются числами ограниченной точности. Поэтому для арифметики с плавающей запятой справедливы все свойства АОТ, рассмотренные в § 1.1. Условимся в дальнейшем изображать нулевое число с плавающей запятой в виде нулевой

<< | >>
Источник: Гуртовцев А. Л., Гудыменко С. В.. Программы для микропроцессоров: Справ, пособие.— Мн.: Выш. шк.,1989.— 352 с.: ил.. 1989

Еще по теме ОБЩИЕ СВЕДЕНИЯ:

  1. Вопрос №1 Общие сведения
  2. Общие сведения.
  3. 5.1. Общие сведения
  4. Общие сведения
  5. § 92. Общие сведения
  6. Общие сведения
  7. 12. Общие сведения
  8. 57. Общие сведения
  9. 82. Общие сведения
  10. 3.3.2.1. Общие сведения
  11. Общие сведения
  12. Общие сведения
  13. Общие сведения.
  14. Общие сведения
  15. Общие сведения