Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

2. программы арифметики с плавающей

запятой

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

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

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

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

Ar = RAr, m = var, (2.1)



где - характеристика /-ичного числа Ar; т - целочисленный порядок: те{0, ±1, ±2, ±mmax}, т. е. Imlmmax; Ar - мантисса числа Ar - правильная дробь, определяемая выражениями:

aiR = ±, Gia2...««; 2 2) I -или Лкф=0, j

где се {О, 1, /?-1} - /-ичные цифры. В мантиссе запятая фиксирована перед ее старшим цифровым разрядом, но фактическое положение запятой в представлении числа определяется независимо от мантиссы порядком т и изменяется - «плавает» - в зависимости от его величины и знака (см. § 1.1).

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

/?-<Мйф<1, (2.3)

такую мантиссу и число с плавающей запятой называют нормализованными. Признаком нормализованности абсолютной величины числа является наличие в старшем цифровом разряде мантиссы ненулевой цифры, т. е. а\ Ф 0. Все остальные числа, не удовлетворяющие условию (2.3), называют ненормализованными. Так, в рассмотренном выше примере первый вариант представления числа С плавающей запятой определяет нормализованное, а другие - ненормализованные числа. Преимущества нормализованных чисел заключаются в том, что они, во-первых, определяются единственным образом и, во-вторых, обеспечивают максимально возможную точность представления чисел в выбранном п-разрядном формате, поскольку не тратят его разряды на изображение незначащих нулей. В нормализованном виде можно представить, вообще говоря, любое число, отличное от нуля. Для представления нуля в форме с плавающей запятой на практике используют несколько вариантов: 1) Лф = ==0, т - произвольно; 2) Л/?ф - произвольно, т = ттт;



3) Лад = О, m = 0; 4) Лад = О, т = тш, где тш = - /7?тах. Чаще всего применяются варианты третий и четвертый [33, 47, 61].

Машинное представление формата чисел с плавающей запятой в отличие от формата чисел с фиксированной запятой содержит, помимо разряда знака 5м и п разрядов цифровой части числа - мантиссы дополнительно раз-)яд знака Sn и цифровых разрядов порядка (рис. 2.1). 3 соответствии с этим представлением и учетом формулы (1.7) порядок т числа Ar определяется выражениями:

т = ± 2 Ь;/?; 0<тК/?"-1=т™., , (2.4)

где bi{0, 1, R- 1} - /?-ичные цифры порядка.

Оценим с учетом выражений (2.1) - (2.4) диапазон представления чисел с плавающей запятой:

/?- = И« U п < К Л« Lax =

= /"-.(1 /-"), (2.5)

где значение Л;г1тш справедливо для нормализованных чисел (в случае ненормализованных чисел Л/?тт =

= R "max - «).

Из неравенств (2.3) - (2.5) следует, что диапазон нормализованных чисел практически не зависит от разрядности мантиссы, а определяется в основном величиной основания системы счисления и разрядностью порядка. Размещение диапазона чисел с плавающей запятой на числовой оси аналогично размещению чисел с фиксированной запятой (см. рис. 1.2, а). При появлении в процессе вычислений чисел, не принадлежащих диапазону, возникают, как и для чисел с фиксированной запятой, ошибки переполнения Л;г > Л;г max и антипереполнения (машинного нуля) \Ar\ <; Л/?тт, которые для чисел с плавающей запятой выражаются как одноименные ошибки порядка: m > mmax и m<mmin.

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



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116



0.0124
Яндекс.Метрика