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

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

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

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

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

1.4,2. Дополнительные коды. Пусть, как и в предыдущем подразделе, в качестве цифр /г-ичной системы счисления выбраны п неотрицательных целых чисел 0,1,2,..., п - 1. При использовании позиционного способа изображения чисел с естественными весами разрядов все т-разрядные числа, которые можно записать с помощью этих цифр, заключены в интервале от О до примерно Ьп (где б - вес старшего разряда); общее количество различных чисел в этом интервале равно n .

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



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

При использовании дополнительных кодов добавочный двоичный разряд записывается всегда слева от старшего из п-ичных разрядов. Разрядная сетка машины расположена обычно так, что добавочный разряд оказывается в целой части числа. Если бы этому разряду приписывался естественный вес, то его вес был бы равен = /гб, где б - вес старшего /г-ичного разряда (см. 1.3.1)*).

Во многих случаях разрядная сетка располагается так, что старший из п-ичных разрядов является первым разрядом дробной части числа, его вес при этом равен 1/п; добавочный двоичный разряд оказывается тогда первым разрядом целой части числа, его естественный вес должен был бы равняться единице:

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

*) Если бы разрядная сетка была расположена так, что добавочный разряд оказался бы в дробной части числа, то его естественный вес все равно можно было бы определить по рекуррентной формуле из 1.3.1- как 6о= 6п. Но при этом сама величина б (вес старшего из основных разрядов) может оказаться, строго говоря, установленной неверно. Если, например, в разрядную сетку входят в качестве основных 2-й,. 3-й и т. д. десятичные разряды дробной части числа, то мы приписываем этим разрядам веса 1/100, 1/1000 и т. д. и тем самым предполагаем, что отсутствующий в разрядной сетке 1-й разряд дробной части числа есть тоже десятичный разряд. Поставив теперь слева от основных разрядов (т. е. на первое место в дробной части числа) не десятичный, а двоичный разряд, следовало бы приписать ему естественный вес 1/2, следующему за ним разряду (старшему из основных) - вес 1/20, следующему затем - вес 1/200 и т. д. Однако, сохранив за основными разрядами веса 1/100, 1/1000 и т. д. и приписав добаючному двоичному разряду вес 6п - 10-1/100 = 1/10, мы получили бы все равно систему, обладающую всеми сюйствами позиционного способа изображения чисел с естественными весами разрядов (см. предпоследний абзац 1.3.1 - стр. 41-42).



г. Первый вариант состоит в том, что добавочному двоичному разряду приписывается вместо его естественного веса 6о вес - бд. Ясно, что при наличии цифры laquo;о raquo; в добавочном разряде все число в целом положительно или равно нулю; его основные разряды изображают абсолютную величину числа точно так же, как и при использовании прямых кодов. При наличии цифры laquo;1 raquo; в добавочном разряде (с весом - бд) все число в целом отрицательно, потому что величина, записанная всеми остальными разрядами числа, какие бы цифры ни были в этих разрядах, непременно меньше, чем бр. В основных разрядах при этом тоже записана, как и при использовании прямых кодов, абсолютная величина числа, но записана она в виде дополнения до бо; иначе говоря, для числа д: lt;; о в основных разрядах вместо величины л; записана величина бр - л;. Отсюда и название: laquo;дополнительный raquo; код. Добавочный двоичный разряд при использовании дополнительных кодов может рассматриваться как разряд знака: если в нем стоит цифра laquo;О raquo;, число положительно, если laquo;1 raquo; - отрицательно.

Пример 1. Пусть, например, используется десятичная система счисления (п = 10) и в качестве основных разрядов числа выбраны 1-й, 2-й и 3-й разряды дробной части.. Величина, записанная этими разрядами, находится в интервале от О (число. ооо) до почти 1 (число. 999). Чтобы иметь возможность оперировать не только с положительными, но и с отрицательными числами, нужно к трем десятичным разрядам добавить еще один двоичный разряд. Если мы пользуемся прямым кодом, то этот дополнительный разряд является просто разрядом алгебраического знака (+ИЛИ -). К примеру, число +0,537 записывается в виде

+.537,

число -0,537 - в виде

-.537. .

Если мы пользуемся дополнительным кодом, то добавочный двоичный разряд (с допустимыми для него цифрами О, 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