Разделы


Рекомендуем
Автоматическая электрика  Автоматика радиоустройств 

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 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270

1. Умножение начинается с младших разрядов множителя:

v 0,100111 х0,111011

100111 100111 000000 100111 100111 + 100111

0,100011Ц1101

2. Умножение начинается со старших разрядов множителя:

0,100111 0,111011

100111 100111 100111 000000 100111 100111

0,100011111101

Xixz = 0,100011111101.

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

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

дов. Знак частного определяется сложением по модулю 2 знаковых разрядов делимого и делителя в одноразрядном сумматоре.

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

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

Определение частного возможно двумя способами.

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

Если при этом знак остатка становится положительным, то в частном должна быть цифра 1. При отрицательном остатке снова восстанавливается предыдущее значение делимого, делитель сдвигается вправо еще на один разряд и вычитается из восстановленного остатка. Проиллюстрируем сказанное на примере.

Пример. Найти х=хх: х2, где

делимое *i = -0,01010001; делитель х2 = +0,10010000

[Xl]np = [Х2]пр

1,01010001; = 0,10010000.

Вычитание заменим сложением дополнительных кодов. Знак частного определяется сложением знаковых разрядов делимого и делителя по модулю 2, т. е.

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

Восстановление делимого

Сдвиг делителя вправо и вычитание его из делимого

Сдвиг делителя вправо и вычитание его из остатка

Восстановление предыдущего остатка

1+0=1

0,01010001 1,01110000

1,11000001ч 0,10010000

0,01010001 1,10111000

0,0000100b 1,11011100

1,11100101ч 0,00100100

0,10010000

1,1001 . . . Частное

-Остаток<0, деление возможно

-Остаток>0, в частное записывается 1

-Остаток<0, в частное записывается 0



Сдвиг делителя и вычита-. ние его из остатка

Восстановление предыдущего остатка

Сдвиг делителя и вычитание его из остатка

,0,00001001 +1, 11101110

,1,11110111-

TQ,00010010

,0,00001001 П, 11110111

0,00000000ч

-Остаток<0, в частное записывается 0

-Остаток=0, в частное записывается 1

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

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

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

сравнению с предыдущим способом обладает большей одинаковостью действий и требует меньше времени для выполнения всей операции.

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

1. Порядки слагаемых одинаковы: А - 2тХ;

Вычитание делителя

Сдвиг делителя вправо и прибавление его к остатку

Сдвиг делителя и вычитание его из остатка

Сдвиг делителя и вычитание его из остатка

Сдвиг делителя и прибавление его к остатку

+°г

10101001 ,00110000

В - 2ту. 0,11010000

1,1101

Частное

1,1101100Ь 0,01101000

-Остаток<0, деление возможно

, 0,01000001 -+1,11001100

-Остаток>0, сывается 1

в частное запи-

о.оооопоь

1,11100110

1,1111001Ь 0,00001101

0,00000000ч

-Остаток>0, в частное записывается 1

-Остаток<0, в частное записывается 0

- Остаток=0, в частное записывается 1

Процесс повторяется до получения требуемого количества разрядов частного.

В рассмотренное схеме деления двоичных чисел вместо сдвига делителя вправо можно сдвигать остаток влево на один разряд при каждом шаге деления.

Пример. Найти x=xt: х2, где

делимое xi = -0,10101001 [лчЬр = 1,10101001;

делитель х2 = +0,11010000 [х2]пр = 0,11010000. Вычитание заменяем сложением дополнительных кодов.

Знак частного определяется сложением знаковых разрядов делимого и делителя по модулю, два:

[1+0] mod 2=1.

Этот способ деления называют делением без восстановления остатка . Способ деления без восстановлений остатка по

21-1248

Тогда

А + В = 2т(х + у).

Прн этом цифровые части складываются 2. Порядки слагаемых разные:

А = 2 >x;

В = 2*у,

где m>q, А>В.

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

Пример.

А =25-0,100101 В =23-0,101001

т - 5; <? = 3 m - q - 2



Сдвинем мантиссу числа в на два разряда вправо и увеличим порядок на 2. Получим:

в = 25-0,00101001.

Если для представления мантиссы и ее знака в машине отведено семь двоичных разрядов, то в нашем случае после сдвига мантиссы числа в будет иметь место потеря двух младших разрядов. Число в при этом округляется:

в = 2s-0,001010;

а + в == 25(0,100101 + 0,001010) = . = 25 -0,101111.

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

Если при сложении мантисс двух чисел х и у получена сумма х+>1, то говорят, что произошло нарушение нормализа-

то ре-

ции влево. Если же x+i/<

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

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

Признаком нарушения нормализации вправо служит появление одинаковых цифр 0,0 илн 1,1 в соседних двух разрядах: в первом разряде перед запятой и в первом разряде после запятой.

При нарушении нормализации влево в машине автоматически сдвигается мантисса и ее знак вправо на один разряд, порядок увеличивается на единицу, а в старшем знаковом разряде сохраняется та цифра, которая стояла до выполнения нормализации (сдвига) вправо.

Пример. 1. Сложить числа +23 0,10101 и +23-0,100011. При сложении мантисс имеем:

,00,10101 ОО, 10001

01,00110

Получение пары цифр 01 в разрядах знака указывает на нарушение нормализации влево.

Сдвинем вправо на один разряд полученный код и сохраним в старшем разряде знака цифру 0, получим мантиссу вида 00,10011.

Сумма с учетом коррекции порядка будет равна +24-0,10011.

2. Сложить числа -23 -23-0,10001.

Сложим мантиссы в обратном рованном коде:

,11,01010 41,01110

110,11000

0,10101 и

модифици-

► 1

10,11001

Выполнение нормализации осуществляется путем сдвига полученного результата на одни разряд вправо и прибавления единицы к порядку суммы. При этом в старшем разряде знака сохраняется единица.

После сдвига вправо на один разряд получим сумму в обратном коде 11,01100, который является изображением числа -0,10011. -

Сумма двух чисел равна -24-0,10011. В дополнительном модифицированном коде:

11,01011 11,01111

110,11010 -10,ною

отбросить

После нормализации получим код 11,01101, являющийся изображением числа -0,10011. Сумма двух чисел равна -24 0,10011. При сложении чисел с разными знаками. может произойти нарушение нормализации вправо. В этом случае машина автоматически выполняет нормализацию влево.

Нормализация влево на один разряд состоит в сдвиге мантиссы влево и в уменьшении порядка на 1.

Пример. Найти сумму чисел

+2*-0,11Ю1 и -24- 0,10010 1. В обратном коде:

порядок

0-100 0-100

знак порядка

00,11101 11,01101

100,01010

+1--1

циклический перенос

00,01011

признак нарушения нормализации вправо




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 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270

Яндекс.Метрика
© 2010 KinteRun.ru автоматическая электрика
Копирование материалов разрешено при наличии активной ссылки.