www.chms.ru - вывоз мусора в Балашихе 

Динамо-машины  Обратные коды 

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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 [ 176 ] 177 178 179 180 181 182 183 184 185 186 187 188 189

Аналогично предыдущему нетрудно убедиться, что если относительная погрешность величины xi есть б/, то относительная погрешность величины xi+i, вычисленной по формуле (**),есть 6j+i = б: из Х[ = -(1 -б/)и формулы (**) следует

= (1 - 6,) {3 [ 1 - (1 - 6,)] +

-МС-1-(1-6,)П=(1-б?).

Точно так же относительная погрешность величины вычисленной по формуле (***), есть bi+i =

Таким образом, каждая итерация по формуле (**), грубо говоря, утраивает количество верных знаков, а по формуле (***) - учетверяет.

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

Существуют и другие способы выполнения деления через умножения.

5.2. Редкие операции

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

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

*) Принцип построения такого устройства был предложен автором настоящей книги в 1958 г.



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

Итак, пусть арифметическое устройство построено в соответствии со схемой рис. 5-1, а (см. стр. 496). Усложнения, которые нам придется ввести в схему, состоят в следующем:

- в регистре С вводятся цепи сдвига влево;

- в регистре Вив сумматоре вводится дополнительно по 2 младших разряда.

У(епи cdSuea влебана /разр.

\ РегистрА

1 т

ЦеписШеа Олевоиа Ipaei.

РегистрВ \ \

к схеме

1/пра6ления ([1

АиВблебо

mm*!m*Z

III сигналы переноса М НотвнИа выдатьсушувб

Регистр С

ютном И01

Команда сдвиг CSfieBa Команда вбр.нод С

Рис. 5-6. Устройство для извлечения квадратного корня в двоичной системе. (Специальные цепи, отсутствующие в схеме рис. 5-1, а, обведены жирными линиями.)

Дополнительные разряды регистра В связаны цепями сдвига влево с регистром А и основными разрядами регистра В; когда в регистрах А и В производится одновременно сдвиг влево, старшая цифра из А передвигается в младший дополнительный разряд регистра В, а цифра из старшего дополнительного разряда передвигается в младший основной разряд регистра В. На входы laquo;с raquo; дополнительных разрядов сумматора постоянно подаются сигналы laquo;11 raquo;, ввиду чего дополнительные разряды сумматора могут быть по схеме проще, чем основные разряды.

Полная схема устройства приведена на рис. 5-6, причем цепи, введенные специально для извлечения квадратного корня, выделены жирными линиями. Видно, что количество



дополнительного оборудования в схеме арифметического устройства незначительно.

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

Работает устройство при извлечении корня следующим образом.

До начала операции подкоренное выражение устанавливается в регистре Л, регистры В и С гасятся (устанавливаются в положение laquo;О raquo;), после чего в регистре С производится обращение кода (причем в нем устанавливается код 111...11).

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

Сначала необходимо снести 2 старшие цифры подкоренного выражения и извлечь из них квадратный корень, причем должна получиться первая цифра результата. С этой целью в начале операции производим два сдвига влево в регистрах An В, в результате чего 2 старшие цифры подкоренного выражения перемещаются в младшие (дополнительные) разряды регистра В, и даем команду laquo;сформировать единицы двоичного переноса raquo;.

Старшие разряды подкоренного выражения могут содержать одну из 4 комбинаций: 00, 01, 10 или 11. В первом случае (комбинация 00) корень из величины, представленной этими разрядами, равен нулю, в трех остальных случаях - единице. Поскольку в регистре С в это время находится величина .111...Ill, то на выходе старшего разряда сумматора не получится сигнала переноса только при наличии всех нулей в регистре В. Если в регистре В содержится комбинация .000...00 или .000...010 или .000...011-(где штрихом отделены младшие, дополнительные, разряды), то на выходе старшего разряда сумматора появится единица переноса.

Таким образом, результат образования единиц переноса определяет первую цифру результата а: если El = О, то первая цифра результата равна нулю, если El - 1, то она равна единице.



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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 [ 176 ] 177 178 179 180 181 182 183 184 185 186 187 188 189