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

Так как при b + с = 9 имели бы 3 (6 + с) + 4 = 31, то это неравенство одновременно означает, что + с gt;9, т. е. что gt; + с gt; 10 (потому что Ьис - целые). Таким образом, двоичный перенос влево от старшего разряда пятерки возникает тогда и только тогда, когда при сложении записанных Б них десятичных цифр по правилам десятичной арифметики должен возникнуть перенос в следующий десятичный разряд. В данном десятичном разряде в этом случае должна остаться цифра суммы, равная b + с - 10; действуя по правилам двоичной арифметики, мы получаем в данной пятерке двоичных разрядов величину

(ЗЬ + 2) + (Зс + 2) - 32 = 3 (6 + с - 10) + 2,

что как раз и является изображением цифры b -\- с - 10.

В случае, когда перенос из данного десятичного разряда отсутствует, десятичная цифра суммы должна быть равна просто 5 + с. Чтобы получить правильное изображение этой цифры (3 (р -\- с) -\- 2), нужно вычесть 2 из результата сложения, выполненного по правилам двоичной арифметики ((36 + 2) + (Зс Ч- 2) = 3 (6 + с) Н- 4).

Важным достоинством кода laquo;За + 2 raquo; по сравнению с кодом с излишком 3 является возможность обнаружения наиболее вероятных ошибок при передаче чисел, о чем сказано Б разделе 1.7. Именно ради этого, может быть, и имеет смысл применять 5-разрядный двоичный код для изображения десятичных цифр вместо 4-разрядного кода.

1.6.3. Примеры других двоичных кодов десятичных цифр. Для кодов, приведенных в 1.6.2, общим преимущест Бом ЯБляется то, что дополнения от десятичных цифр до 9 получаются обращением двоичных цифр. У некоторых из них это едва ли не единственное достоинство

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



для десятичных цифр может быть тоже 215040 (4-разрядных) или 1,67-10* (5-раз рядных).

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

Таблица 1-6 Примеры двоичных кодов для десятичных цифр

Десятич-

ные цифры

код 7. 4, 2, 1

два из пяти

(И), X, у, г)

код 5, 4, 2. 1

0000

11000

0000

0000

0000

0000

0001

00011

0001

0001

0001

0010

00101

0010

00110

1000

0111

0010

0100

01001

1111

0100

0101

01010

1111

0101

0111

1000

01100

1001

0101

1001

1000

10001

0010

1001

0100

1010

1001

10010

1100

1100

1100

1011

1010

10100

0100

1010

1000

1100

Код laquo;7, 4, 2, 1 raquo;, приведенный в столбце laquo;а raquo;, предлагался для применения в релейных (электромеханических) вычислительных машинах, где двоичную единицу изображает замкнутое реле, а двоичный нуль - разомкнутое реле. При этом замкнутое реле потребляет ток от источника питания, разомкнутое не потребляет. В рассматриваемом коде использованы комбинации двоичных цифр с минимальным количеством единиц: комбинация 0000 (для десятичной цифры 0), все 4 комбинации, содержащие по одной единице (0001 -для цифры 1, 0010-для цифры 2, 0100 -для цифры 4, 1000-для цифры 7), и комбинации, содержащие по две единицы для остальных десятичных цифр. Поэтому использование этого кода обеспечивает в среднем минимальное потребление тока от источника питания.



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

Иногда важно не столько уменьшить потребление тока от источника питания, сколько обеспечить ровную нагрузку на источник (чтобы предотвратить большие изменения падения напряжения на его внутреннем сопротивлении). При этом может потребоваться код, в котором изображения всех десятичных цифр содержат примерно одинаковые количества единиц. Его можно получить, например, заменив в столбце laquo;а raquo; таблицы 1-6 комбинацию ОООО (для изображения цифры 0) комбинацией 1100; при этом окажется, что в изображении любой десятичной цифры содержится одна или две единицы. Для сравнения напомним, что в коде laquo;8, 4, 2, 1 raquo; изображение десятичной цифры может содержать от нуля до трех единиц ((0)io = ОООО, (7)io = 0111).

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

Вообще построение кодов laquo;два из пяти raquo; и laquo;три из пяти raquo; возможно потому, что количество сочетаний из пяти элементов по два или из пяти элементов по три оказывается достаточным:

d = Cl= 10.

Десять сочетаний из пяти элементов по два могут быть поставлены в соответствие десяти десятичным цифрам 101 различными способами. Поэтому возможно 101 = 3 628 800



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