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.3.2), получим обычную двоичную запись ближайшего большего числа в виде

.... 1000... ООО,-

k разрядов

где старшие разряды (обозначенные многоточием слева) - те же, что в исходном числе. Отсюда, следуя обычному правилу, запись этого числа в рефлексном коде получим Б виде

* 100. . ООО,

k-l разрядов

где многоточием слева обозначены старшие разряды такие же, как в изображении рефлексным кодом исходного числа, * - цифра {k + 1)-го справа разряда, противоположная цифре этого разряда в изображении исходного числа, k младших цифр - снова такие же, как в изображении рефлексным кодом исходного числа. Таким образом, при переходе от любого числа к ближайшему большему Б его изображении рефлексным кодом всегда изменяется одна и только одна двоичная цифра.

Само правило построения рефлексного кода дает простой способ перевода чисел из рефлексного кода в обычную двоичную запись: старшая цифра в обычной двоичной записи числа - та же, что и старшая цифра в рефлексном коде; вторая (слева) цифра в обычной записи числа совпадает с первой, если вторая цифра в рефлексном коде есть laquo;О raquo;, и противоположна первой цифре, если laquo;1 raquo;, и т. д. Например, если рефлексный код числа имеет вид 00110100010, то его обычная двоичная запись есть 00100111100. Каждая цифра Б обычной двоичной записи числа либо совпадает с предыдущей (старшей) цифрой, либо противоположна ей в зависимости рт того, является ли соответствующая цифра рефлексного кода нулем или единицей.

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



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

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

Младшую цифру обычной двоичной записи числа можно было бы заранее точно определить, если бы заранее было известно, четно ли количество единиц в рефлексном коде числа. Ясно, что если в рефлексном коде числа содержится четное количество единиц, то младшая цифра в обычной записи числа есть laquo;О raquo;; если в рефлексном коде количество единиц нечетно, то младшая цифра в обычной записи числа есть laquo;1 raquo;. Например, преобразование числа из рефлексного кода в обычную форму удобно было бы начинать от младших разрядов, если бы вместе с рефлексным кодом поступал разряд контроля по четности. Цифра этого разряда могла бы служить прямо младшим разрядом обычной записи числа; при этом совпадение старшего разряда, полученного в конце операции преобразования, со старшим разрядом рефлексного кода являлось бы признаком отсутствия ошибок при передаче кода.



2. Сумматоры и другие схемы

для выполнения элементарных операций

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

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

2.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