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

Если двоичным разрядам приписать их естественные веса 8, 4, 2, 1, то величина, записанная в четверке двоичных разрядов, отличается на 3 от истинного значения десятичной цифры, которой она соответствует. Например, комбинация ООН является двоичным представлением числа 3, соответствует же она десятичной цифре 0; величина 0100 представляет в двоичной системе число 4, соответствует же она цифре 1 и т. д.

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

6 -f 3

с + 3.

Произведя сложение по правилам двоичной арифметики, получим величину

6 + С + 6.

Если при этом возникает перенос влево от старшего двоичного разряда тетрады, то это значит, что

6 + с + 6 gt; 16.

Но это в то же время означает, что

6 + с gt; 10,

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

В данном десятичном разряде результат сложения должен быть равен либо b + с (если нет переноса в следующий разряд), либо b -\- с - 10 (если есть перенос в следующий разряд). Так как результат сложения должен быть представлен - подобно слагаемьш - кодом с излишком 3, тетрада двоичных разрядов в результате должна содержать соответственно либо

{Ь + с) + 3,

либо

(6 -f с - 10) + 3.



На самом же деле, действуя по правилам двоичной арифметики, мы получим в данной тетраде соответственно либо величину -f с + 6 (если из данной тетрады не было переноса в следующую), либо Ь + с- 10 (если из данной тетрады был перенос); для получения правильного результата нужно в первом случае произвести в данной тетраде вычитание числа 3, во втором - добавление числа 3.

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

Пример. Пусть необходимо выполнить сложение 3542 4- 1476. В коде с излишком 3 слагаемые имеют вид ОНО 1000 0111 0101 и 0100 0111 1010 1001.

Сложение по правилам двоичной арифметики дает

,0110 1000 0111 0101 0100 0111 1010 1001 1011 0000 0001 1110 (0) (1) (1) (0)

Цифры, которые записаны внизу в скобках, показывают, был ли перенос из находящейся справа тетрады. Добавление и вычитание по тетрадам числа 3 (в двоичной системе 11) в соответствии с указанным выше правилом дает

1011 0000 0001 1110 (-11) (-Ц1) (+11) (-11) 1000 ООН 0100 1011

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

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

В этом коде весьма просто найти дополнение от любой десятичной цифры до 9 (что необходимо при преобразовании десятичного числа в дополнительный или в обратный код - см. 1.4.2 и 1.4.3). Для этого достаточно в двоичном изображении десятичной цифры заменить все двоичные



цифры на обратные (т. е. нули заменить единицами, единицы - яулями).

Действительно, двоичное изображение какойглибо десятичной цифры а Б рассматриваемом коде соответствует величине с + 3. Заменяя в данной тетраде все двоичные цифры на противоположные, мы тем самым находим дополнение от этой величины до числа 15 (по двоичной системе 1111). Таким образом, замена всех двоичных цифр на противоположные дает (в указанной тетраде) вместо величины с + 3 величину

.. 15 - (с -f 3) = (9 - а) + 3,

что является изображением десятичной цифры 9 - а в коде с излишком 3.

.Например, заменив на противоположные все двоичные цифры Б изображении десятичной цифры О (ООН), получим 1100 - изображение цифры 9; заменив на противоположные все двоичные цифры в изображении десятичной цифры 1 (0100), получим 1011 -изображение десятичной цифры 8 и т. д.

Последним свойством обладает не только код с излишком 3, но и множество других кодов. Чтобы построить код, обладающий указанным свойством, нужно поступить следующим образом.

Все десятичные цифры необходимо сгруппировать в 5 взаимно дополнительных пар:

О и 9; 1 и 8; 2 и 7; 3 и 6; 4 и 5.

16 комбинаций, которые возможны в четырех двоичных разрядах, следует сгруппировать в 8 взаимно обратных пар:

ОООО и 1111; 0001 и 1110; 0010 и 1101; ООП и 1100; 0100 и 1011; 0101 и 1010; ОНО и 1001; 0111 и 1000.

Далее нужно выбрать любые пять взаимно обратных пар комбинаций двоичных цифр и поставить их в соответствие пяти взаимно дополнительным парам десятичных цифр Причем одна из двоичных комбинаций пары должна соот вётствовать одной десятичной цифре, другая -другой. Например, в коде с излишком 3 паре взаимно дополнительных десятичных цифр О и 9 соответствует пара взаимно



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