![]() |
Главная -> Появление первого микропроцессора 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.1. Пограничные числа формата (8,16)
Заметим, что неравенства (2.8) и (2.9) получены для нормализованных чисел, округленных несимметричным способом при их представлении в «-разрядном {п = 16) формате мантиссы. В случае симметричного округления (1.9) величина бг уменьшается в два раза. Для обеспечения эквивалентной точности и диапазона в случае чисел с фиксированной запятой потребовалась бы разрядность, в шесть раз большая. На рис. 2.3, б показан четырехбайтный формат двоичного числа с плавающей запятой повышенной точности. Первый байт содержит значение смещенного порядка (смещение 128io=80i6), а три остальных - СТБ, СРБ, МЛБ мантиссы, причем в старшем разряде СТБ мантиссы указывается знак мантиссы. Пограничные значения чисел формата (8,24) указаны в табл. 2.2. Табл. 2.2. Пограничные числа формата (8, 24)
Граничная относительная ошибка представления (8, 24) не превышает бг<2-=* + »0,9- 10"-. Таким образом, данный формат существенно расширяет диапазон и точность обрабатываемых чисел. Отметим, что в ряде приложений арифметики с плавающей запятой нет необходимости в использовании формата повышенной точности, поскольку точность исходной информации в микропроцессорных системах зачастую ограничена классом точности первичных датчиков на уровне 0,1...0,05 %, т. е. превышает неточность представления чисел в формате (8, 16) в соответствии с формулой (2.9). Использование формата повышенной точности связано с дополнительными затратами памяти и времени работы микропроцессора и целесообразно для задач, требующих повышенной точности обработки или большего диапазона представления чисел. Числа с плавающей запятой являются числами ограниченной точности. Поэтому для арифметики с плавающей запятой справедливы все свойства АОТ, рассмотренные в § 1.1. Условимся в дальнейшем изображать нулевое число с плавающей запятой в виде нулевой мантиссы Л2ф=0 и минимального порядка т - гпгат. Поскольку порядок имеет смещение, то, очевидно, tTLcK min = 0. 2.2. СЛОЖЕНИЕ И ВЫЧИТАНИЕ ДВОИЧНЫХ ЧИСЕЛ 2.2.1. МЕТОДИКА СЛОЖЕНИЯ И ВЫЧИТАНИЯ Ранее, в § 1.2, было показано, что сложение чисел с фиксированной запятой - точная операция, поскольку она не использует округление результата и не вносит в него какую-либо дополнительную погрешность, кроме погрешностей слагаемых. Если слагаемые точны, то точна и сумма. Если слагаемые - числа ограниченной точности, то точность суммы определяется выражениями (1.15) и (1.16). В отличие от этого сложение чисел с плавающей запятой является в общем случае неточной операцией, вносящей дополнительную погрешность в результат. Поэтому сумма чисел с плавающей запятой даже при точных слагаемых будет, вообще говоря, числом ограниченной точности. Операцию вычитания чисел с плавающей запятой, представленных в дополнительных кодах, можно свести к операции сложения уменьшаемого с дополнительным кодом вычитаемого. Поэтому в дальнейшем обсудим операцию алгебраического сложения (вьшолняет сложение и вычитание чисел в зависимости от знаков слагаемых). Рассмотрим сложение z = x-\-у двоичных чисел с плавающей запятой: х = 2" - X и у = 2""• Y. Если порядки слагаемых равны {тх = ту), то мантиссы X к Y можно непосредственно сложить, поскольку фактическое положение запятой в обоих слагаемых одинаково, т. е. слагаемые совмещены разрядами мантисс с одинаковыми весами. в общем случае, когда числа имеют различные порядки {Шх Ф iy) непосредственно складывать мантиссы нельзя, поскольку фактическое положение запятой в слагаемых различно, т. е. они совмещены разрядами мантисс с несовпадающими весами. Поэтому необходимо предварительно преобразовать слагаемое с меньшим порядком: увеличить его порядок до величины большего порядка и соответствующим образом уменьшить значение его мантиссы, чтобы в целом сохранить величину числа. Эту операцию называют выравниванием порядков. При ее выполнении прежде всего определяется разность порядков Am = тх - Шу. Увеличение порядка слагаемого с меньшим порядком, например у, равносильно умножению у 2*". Тогда уменьшение мантиссы У эквивалентно делению У : 2" (или умножению У •2""), что обеспечивается сдвигом мантиссы У вправо - денормализацией мантиссы - на Am разрядов. С учетом этого процесса сложение чисел с плавающей запятой можно определить следующими выражениями: 2:=2"-A:-f 2". y=2"-Z==2".Z; (2.10) Х+У.2-1"Ч если Дт>0; y-fX.2-1", если Ат<0; X+Y, если Ат=0; m=max(m;„ ту); Z, т.-, 2-.. gj, 2>1, (2.12) где Am = - ту. Формула (2.11) определяет процесс выравнивания порядков и алгебраического суммирования мантисс с равными порядками по правилам арифметики с фиксированной запятой. При сложении мантисс возможны две ситуации: переполнение мантиссы суммы и отсутствие переполЯе-ния. В первом случае необходимо устранить переполнение путем сдвига мантиссы вправо на один двоичный разряд (делением на 2) и соответствующим увеличением на 1 порядка суммы. Эту операцию называют нормализацией вправо. Во втором случае необходимость в нормализации вправо отпадает. Действия на этапе нормализации вправо отражает формула (2.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.0056 |
|