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,2, 3, 4, 5, 6, 7, 8, 9 соответственно цифрами -9, -7, -5, -3, -1, 1, 3, 5, 7, 9, а в двоичном разряде - цифры О, 1 цифрами -1, 1, то получится изображение удвоенного исходного числа системой с цифрами -9, -7,- 9 для десятичных разрядов и с цифрами -1, 1 для двоичного разряда.

Пусть, например, в той же разрядной сетке, которая использована в примере 1 (стр. 64 и 68) число --0,537 записано в виде

/.537.

Произведя замену цифр по указанному правилу, получим

/.135,

т. е. 1-1 + 1-Vio -3-Vioo -f5-Viooo = 1,075. Поскольку мы предполагаем, что отброшенные справа разряды числа содержат величину 0,00099999... = -0,001, постоянная аддитивная поправка в этом изображении чисел равна -0,001. Таким образом, запись 1,135 соответствует числу 1,075-0,001 = 1,074, т. е. удвоенному исходному числу (0,537 X 2).

Точно так же, например, для отрицательного числг raquo; -0,537 запись дополнительным кодом (по второму вариан ту) имеет вид

0.463.

Произведя указанную замену цифр, получим

/,ГЗЗ,

т. е. -1.1 -1. Vio + 3 Vioo - 3 Viooo = -1,073. Учтя аддитивную поправку -0,001, найдем, что запись /.133 соответствует числу -1,074, т. е. удвоенному исходному числу (-0,537 X 2).

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



разрядов числа; при этом аддитивная поправка считается равной не величине - бо, а величине - бц п/2.

Например, в рассмотренном выше примере (для десятичной системы) можно заменить добавочный двоичный разряд добавочным десятичным разрядом - первым разрядом целой части числа, и при этом считать, что аддитивная поправка ко всем числам равна -5. Число +0,537 должно при этом записываться в виде

5.537

(5,537 - 5 = 0,537); число - 0,537 будет представлено в виде

4.463

(4,463 - 5 = -0,537). , .

Число нуль будет записано в виде

5.000.

Наибольшее по абсолютной величине отрицательное число в данной разрядной сетке имеет вид

0.000,

что соответствует числу-5,000 (так как 0,000 - 5 = -5); наибольшее по абсолютной величине положительное число изображается в виде

9.999,

что соответствует числу +4,999.

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

7 deg;. При использовании дополнительных кодов правила счета и, как мы увидим в разделе 3, вытекающие из них правила сложения и вычитания оказываются проще, чем при использовании прямых кодов. В то же время такие операции, как умножение и деление, проще выполняются в прямых кодах.

Поэтому при построении вычислительных машин часто используется следующий прием: нормально числа записы-



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

При преобразовании чисел из прямого кода в дополнительный или обратно главное затруднение связано с определением цифр основных разрядов для отрицательных чисел. Как указывалось, в изображении отрицательного числа X прямым кодом основные разряды числа содержат величину д:, в изображении того же числа дополнительным кодом - величину 6 - л; (где бо - вес знакового разряда: бо = бп; б - вес старшего из основных разрядов, п - основание системы счисления). При переходе от прямого кода к дополнительному, как и при обратном переходе, для отрицательных чисел приходится выполнить вычитание величины, содержащейся в основных разрядах числа, из бо-

Способ, которым это делается, основан на том, что число бо = бп можно представить в виде

бо = бп = б(п-1)-f(п-1) Ч-,-(п~ 1)+...

Здесь б, -, , .. . , - веса т основных разрядов числа, величины (п - 1) - старшие допустимые цифры в них. S 1

величина 1 - единица младшего разряда.

Число бо - = бо (1 - п *), равное

б(п- 1)4 --(п- 1) + + Лп- 1),

содержит наибольшие допустимые цифры (п - 1) во всех основных разрядах. Найти дополнение до него очень просто. Для этого нужно в каждом из основных разрядов найти дополнение от имеющейся в нем цифры до (п - 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