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

Мы, однако, имеем дело с вычислительной машиной, она владеет своим особым машинным языком, а ни один человеческий ей не понятен. Значит, чтобы передать машине какое-то сообщение, мы должны предварительно зашифровать наши слова в двоичный код и направить такую «шифровку» в «мозг» ЭВМ.

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

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

Восьмиричной является система счисления с основанием 8, использующая цифры (символы): 0, 1, 2, 3, 4, 5, 6, 7. Чем же она привлекательна и где применяется? Ведь известно, что ЭВМ действуют на основе двухуровневой системы, то есть двоичной, и им самим восьмиричная система счисления не нужна. Но зато она очень удобна как компактная форма записи чисел для пользователей ЭВМ, при составлении документов, предназначенных для введения в компьютер.

Почему же удобна именно восьмиричная система, а не десятиричная, например? Потому что между двоичной и восьмиричной системами легко обнаружить совершенно четкое соответствие, облегчающее их преобразование. К примеру, последнее (наивысшее) значение одноразрядного числа в восьмиричной системе 7 соответствует максимальному значению трехразрядного двоичного числа, то есть 111. Проследим дальнейший счет чисел n8n2 (индексы 8 и 2 означают восьмиричную и двоичную системы). Увеличение восьмиричного числа 7 на единицу формирует второй разряд, а у двоичного числа появляется четвертый разряд, то есть 108 — 10002 и далее; 118 — 10012, 128—10102, 138—10112, 148—11002, 158— 11012,168—11102, 178—11112. Дальнейшее увеличение на единицу «обнуляет» первый разряд и увеличивает второй разряд восьмиричного числа и формирует новый разряд у двоичного числа: 208—100002 и так далее 278—101112, 308—110002… 378—111112. Это удобство преобразования и склонило пользователей ЭВМ обратиться к восьмиричной, системе.

шифратор

Вычислительная машина при передаче и обработке информации оперирует 8-разрядными словами (байтами). Диапазон значений двоичных чисел одного байта находится в пределах от 0000 00002 до 1111 11112. Соответствующий ему диапазон восьмиричных чисел — от 0008 до 3778. Как видно, записи в восьмиричной системе получаются значительно компактнее, что снижает вероятность ошибки при составлении программ.

Еще более компактна шестнадцатиричная система счисления, основанием которой является число 16. Здесь соответственно используется 16 символов: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F. Как видно, цифр, заимствованных из десятичной системы, не хватает, поэтому часть символов обозначена латинскими буквами.

Теперь проведем сопоставления чисел в шестнадцатиричной и в двоичной системах. Убедимся, что в данном случае существует столь же гармоничное соответствие чисел, как и в предыдущем n16—n2 (индексы 16 и 2 означают шестнадцатиричную и двоичную системы счисления), 016—02, 116—12, 216—102, 316— 112, 416—1002, 516—1012, 616—1102, 716— 1112, 816—10002, 916—10012, А16— 10102, В16—10112, С16—11002; D16—11012, Е16—11102, F16—11112. Поскольку все символы шестнадцатиричной системы использованы, очередное добавление единицы вызовет появление второго разряда у шестнадцатиричного числа и пятого разряда у двоичного: 1016—1 00002. Прибавим к числам еще 15 единиц, получим 1F16—1 11112. Добавление последующей единицы дает 2016— 10 00002. Запишем еще несколько характерных чисел: 3016—11 00002, 4016— 100 00002, 8016—1000 00002, 10016— 1 0000 00002, FFF16—1111 1111 11112, 100016— 1 0000 0000 00002.

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

В вычислительной технике нередко применяется еще одна система счисления — двоично-десятичная, которая чаще всего используется для промежуточных преобразований. Например, преобразование десятичных чисел в двоичные осуществляется в два этапа: сначала десятичные числа переводят в двоично-десятичные, а затем полученное число — в двоичное. Для реализации подобных операций служат соответствующие шифраторы. Двоичнодесятичные числа состоят из тетрад — четырехразрядных двоичных групп. В одной двоичной тетраде может быть записана любая десятичная цифра. Для этого достаточно четырех двоичных разрядов. Каждая тетрада соответствует одному разряду десятичного числа. Например, двухразрядное десятичное число 47 в двоично-десятичной форме будет записано как 0100. 0111, а 3986 — 0011. 1001. 1000. 0110.

шифратор1

Как видно из примеров, правила перевода чисел из одной формы в другую просты, однако для автоматического выполнения таких действий нужно строить довольно сложную логическую структуру шифрования сигналов. Поэтому микросхемы-шифраторы являются приборами средней и большой степени интеграции. Они имеют довольно сложную схемотехнику, выполняемую на основе биполярных транзисторов с диодами Шоттки (ТТЛШ) или полевых транзисторов, которые состоят из последовательных слоев металл-окисел-полупроводник (МОП).

Теперь рассмотрим, как работают конкретные серийно выпускаемые приборы и как их следует использовать в аппаратуре.

Микросхемы К155ПР6 преобразуют двоично-десятичный код в двоичный. На адресные входы А5—А1 поступают слова в двоично-десятичной форме. При условии подачи на вход разрешения Р (вывод 15) низкого логического уровня микросхема осуществляет преобразование входного слова в двоичный код, который формируется на выходах Q5—Q1. Двоично-десятичный вход состоит из двух тетрад: первую составляют входы АЗ, А2, А1, А0 (младший разряд А0 не нуждается в преобразовании, поэтому провод А0 не подключается к микросхеме, а проходит напрямую на выход, где воспринимается как младший выходной разряд. Q0). Входы А4, А5 являются младшими разрядами второй тетрады.

Теперь покажем, как происходит преобразование кодов в этой микросхеме. Если входное слово равно 0, на входах А5—А0 имеем низкие логические уровни, то есть 00. 0000 (точкой разделены тетрады), а на выходах Q5—Q0 будет 000000. При входном слове 2 на входах устанавливается код 00.0010, на выходах 000010. Входному слову 4 соответствует входной код 00.0100, выходной 000100, 6 — на входе 00.0110, на выходе 000110, 8—00.4000 и 001000, то есть состояния входов и выходов до сих пор были совершенно адекватны, Дальше начинается расхождение. Входное слово 10 в двоично-десятичном коде зафиксируется на входе как 01.0000, на выходе 001010 (напомним, что младший разряд не связан с выводами микросхемы, не преобразовывается ею и поэтому в записях кодов присутствует условно). Запишем дальнейшие соответствия входному слову входного и выходного кодов: 12—01.0010—001100; 14—01.0100— 001110; 1 6—01.0110—010000; 18—01.1000— 01001 0; 20—10.0000—010100; 22—10.0010— 010110; 24—10.0100—011000; 26—10.0110— 011010; 28—10.1000—011100;. 30—11.0000— 011110; 32—11.0010—100000; 34—11.0100— 100010; 36—11.0110—100100; 38—11.1000— 100110. При подаче на вход разрешения Р высокого логического уровня все выходы устанавливаются в состояние логической 1.

Кроме основной своей функции, микросхемы К155ПР6 осуществляют также преобразование двоично-десятичного кода в код дополнительный до 9 при подаче на вход разрешения Р низкого логического уровня. Для приема входного слова используется одна тетрада А4, АЗ, А2, А1 (вывод А5 заземляется, что равносильно подаче постоянного низкого логического уровня). Выходной код формируется на выводах Q8, Q7l А2, Q6 (второй разряд выходного слова снимается непосредственно со второго разряда входного).

Код «дополнительный до 9» означает, что на выходе должно формироваться число, которое при любой комбинации на входе дополняет ее до целой девятки, то есть входное число плюс выходное число равно 9. При входном числе, равном нулю, на входах А4, АЗ, А2, А1 устанавливается 0000, а выходное слово, снимаемое с Q8, Q7, А2, Q6, становится равным 1001 — или 9 а десятичной системе счисления. Входное число 0001 вызывает формирование на выходе 1000 и далее 2—0010—0111, 3—0011—0110, 4—0100—0101, 5—0101—0100; 6—0110—0011, 7—0111—0010, 8—1000—0001, 9— 1001—0000.

Используют МС К155ПР6 и для преобразования двоично-десятичного кода в код дополнительный до 10. Входное слово поступает на выводы А4, АЗ, А2, А1, составляющие одну тетраду. Вывод А5 соединяют с выводом +Uп, на входе Р устанавливают низкий логический уровень. Выходной код формируется на выходах Q8, Q7, Q6, А1 (мдадший разряд выходного слова снимается непосредственно с входа).

Получаемый на выходе код «дополнительный до 10» удовлетворяет формуле: входное число плюс выходное число равно 10. Чтобы показать, какие преобразования выполняет микросхема, запишем ряд входных чисел и соответствующие им входные и выходные коды: входное число — А4, АЗ, А2, А1 — Q8, Q7, Q6, А1; 0—0000— 0000; 1—0001—1001; 2—0010—1000; 3— 0011—0111; 4—0100—0110; 5—0101 — 0101; 6—0110—0100; 7—0111—0011; 8— 1000—0010; 9—1001—0001.

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

Прибор К155ПР7 используется для преобразования двоичного кода в двоично-десятичный, то есть выполняет операцию, обратную предыдущей микросхеме. МС К155ПР7 имеет шесть входных выводов, из которых пять А5, А4, АЗ, А2, А1 служат для приема входного слова, и вход Р — для разрешения преобразования. Линия А0 младшего разряда числа, поступающего для преобразования, является одновременно и младшим разрядом Q0 выходного слова. Преобразованное двоично-десятичное число формируется на выходных выводах в двух тетрадах Q6, Q5, Q4. Q3; Q2, Q1, Q0 (точкой отделена младшая от старшей тетрады).

Порядок преобразования, выполняемый микросхемой, следующий; входное слово — входной код (А5, А4, АЗ, А2, А1, АО) — выходной код (Q6, Q5, Q4, Q3, Q2, Q1, Q0); 0—000000—000.0000; 2—000010—000.0010; 4—000100–000.0100; 6—000110—000.0110; 8—001000—000.1000; 10—001010—001.0000; 12—001100—001.0010; 14—001110—001.0100; 16—0100000—001.0110; 18—010010—001. 1000; 20—010100—010.0000; 22—010110—010.0010; 24—011000—010.0100; 26— 011010—010.0110; 28—011100—010.1000; 30—011110—011.0000; 32—100000—011.0010; 34—100010—011.0100; 36—100100—011.0110; 38—100110—011.1000; 40—101000—100.0000; 42—101010—100.0010; 44—101100—100.0100; 46— 101110—100.0110; 48—110000—100.1000; 50—110010—101.0000; 52—110100—101.0010; 54—110110—101.0100; 56—111000—101.0110; 58—111010— 101.1000; 60 — 111100 — 110.0000; 62 — 111110 — 110.0010.

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