2 + 0·21 + 0·20.
Н. — Твоя двоичная арифметика не представляется мне выдающимся достижением. Нужно целых три цифры, чтобы написать число 4… Результат скорее стоит назвать плачевным.
Л. — He торопись с выводами, дорогой Незнайкин. Несомненно в двоичной системе счисления требуется большее, чем в привычной нам десятичной, количество цифр. В среднем для написания одного и того же числа нужно в 3 раза больше цифр. Но в двоичных числах используются лишь нули и единицы, что значительно упрощает действия с этими числами. Как ты, например, переведешь на десятичный язык написанное мною по двоичной системе число 1 101 101?[19]
Н. — Для начала я постараюсь не попасть в поставленную тобой ловушку и не скажу, что это один миллион сто одна тысяча сто один. А теперь я начну справа, полагая, что так легче справиться с поставленной задачей. Написанное число, как мы видим, содержит единицу, но оно не содержит основания, потому что его вторая справа цифра нуль; в то же время число содержит основание в квадрате, т. е. 4, и основание в кубе, потому что и третья и четвертая справа цифры — единицы. Затем можно сказать, что число не содержит основания в четвертой степени (это выражение равно 16), но содержит основание в пятой степени (т. е. 32) и основание в шестой степени (т. е. 64). Следовательно, написанное тобою число равно сумме названных чисел, а именно 64, 32, 8, 4 и 1; и на десятичном языке его следует назвать 109.
Л. — Превосходно, Незнайкин, ты прекрасно преобразовал это число. А сможешь ли ты теперь сделать сложение по правилам двоичной арифметики?
Н. — Вероятно, это довольно сложно, но я тем не менее готов попробовать.
Л. — Хорошо, вот тебе числа для сложения
Для облегчения твоей работы я над каждой колонкой расположил маленькие буковки: а обозначает единицы, b — двойки, с — четверки, d — восьмерки, е — шестнадцатки (прости мне этот неологизм, несколько напоминающий десятки), f — тридцать-двойки, g — шестьдесят-четверки и h — сто-двадцать-восьмерки. Теперь можно начинать[20].
Н. — Возьмусь за дело. Предполагаю, что здесь поступают, как в десятичной арифметике. Не так ли?
Л. — Совершенно верно, только в двоичной арифметике элементарное сложение цифр производится по другим правилам.
Н. — Так, смело вперед. В колонке единиц, обозначенной буквой а, мы имеем 1 вверху и нуль внизу. Я естественно предполагаю, что нуль плюс 1 дает 1 и записываю полученный результат под чертой. Правильно?
Л. — Очень хорошо, но сознайся, что этот случай был не очень сложным.
Н. — Охотно признаю, а теперь перейдем к обозначенной буквой b колонке двоек. Это сложение меня несколько смущает, в обоих числах здесь стоят нули.
Л. — Но это самый классический случай, он настолько прост, что проще не бывает. Какой бы арифметикой мы ни занимались, для меня нуль плюс нуль всегда дает нуль.
Н. — Очень логично, об этом следовало бы подумать. Итак, в сумме на месте двоек я записываю нуль. Переходим к четверкам, обозначенным буквой с. Здесь тоже нет ничего трудного: 1 вверху и нуль внизу дают в сумме 1, что и записываю под чертой. С восьмерками дело обстоит чуточку посложнее; вверху у нас 1 и внизу тоже 1, их сумма 2, а у меня нет цифры 2, чтобы записать полученный результат.
Л. — Действительно, у тебя нет цифры 2, но ты можешь записать число 2 в двоичной системе в виде 1, за которой следует нуль. Иначе говоря, ты оказался в таком же положении, как при сложении по правилам десятичной арифметики, когда полученный результат превышает 10. Как ты обычно поступаешь в таком случае?
Н. — В таком случае я просто-напросто записываю цифру единиц и запоминаю цифру десятков.
Л. — Хорошо, так запиши цифру единиц, т. е. нуль в колонку d, и запомни цифру двоек, в нашем случае 1, которую ты потом прибавишь к сумме, полученной в колонке е.
Н. — Продолжим; в колонке е все обходится без каких бы то ни было трудностей; нуль в одном слагаемом, нуль в другом слагаемом да запомненная 1 дают в сумме только 1. Этот результат я и вписываю под чертой в колонке е. В колонке f мы сталкиваемся с уже знакомым положением: 1 + 1 дают в сумме 2 — я записываю нуль и запоминаю 1, которую предстоит прибавить к результату, полученному в колонке g. А вот с колонкой g справиться значительно труднее, потому что там мы имеем три слагаемых и каждое из них равно 1.
Л. — Но тебе надлежит применить этот же самый принцип. Сложение трех чисел по 1 в сумме дают 3, а это число в двоичной системе счисления записывается как одна двойка и одна единица, т. е. 1, после которой следует 1. Следовательно, запишешь 1 в колонку g и запомнишь 1.
Н. — Правильно, я сам должен был до этого додуматься; перейдем же к последней нашей колонке h — здесь нет ничего кроме 1, которую я запомнил, и мне остается лишь записать ее под чертой как полученный результат. Теперь я понял, почему ты предусмотрел эту колонку и обозначил очередной буквой, хотя ни в одном из наших слагаемых в этом разряде цифр не было.
Л. — Я полагаю, что ты уже располагаешь достаточными знаниями, чтобы с помощью логических рассуждений произвести любые операции с двоичными числами. А теперь давай посмотрим, какими электронными средствами можно осуществить такие операции. Я начну с рассказа о логических элементах.
Н. — Как! Разве те схемы, о которых ты до сих пор мне рассказывал, не признавали логики?
Л. — Дорогой Незнайкин, оставь, пожалуйста, игру слов для других обстоятельств. Логическими элементами называют схемы, реализующие некоторые логические функции, описываемые алгеброй логики и тесно связанные с двоичной арифметикой. Рассматривая эти элементы, мы будем интересоваться лишь наличием или отсутствием напряжения. Отсутствие напряжения мы назовем нулем, а наличие некоторого положительного напряжения назовем 1. Иначе говоря, все, что не 1, будет нуль, а все, что не нуль, будет 1.
Н. — Все ясно, и я чувствую себя совершенно спокойно, если только дальше не появится что-то более сложное.
Л. — Не очень-то доверяй своему впечатлению, Незнайкин, именно за этой кажущейся простотой иногда скрываются трудности. Но как бы то ни было, ты увидишь, что это не уведет нас слишком далеко.
Начнем с элемента ИЛИ, обозначение которого приведено на рис. 125.
Рис. 125.Обозначение логического элемента ИЛИ, который выдает напряжение на выходе, когда напряжение имеется на одном или на другом входе(или на обоих входах одновременно).
Пусть тебя не беспокоит знак 1; он заимствован из специальной системы обозначений, в которую я предпочитаю тебя не посвящать. Элемент предназначен для выдачи напряжения на выходе 5, когда напряжение имеется на его входе А или на входе В или одновременно на обоих входах. Нечто аналогичное можно получить, если предположить, что напряжения А и В воздействуют на катушки двух реле, нормально разомкнутые контакты которых включены параллельно.
Н. — В твоей идее элемента ИЛИ меня несколько беспокоит отсутствие какой бы то ни было разницы между случаями, когда напряжение подается на один из двух входов и когда оно подается на оба сразу.
Л. — К этой идее необходимо привыкнуть. Представь себе, например, что мы установили электрический звонок и подключили к нему параллельно два включателя — кнопки, установленные в разных местах. Звонок зазвонит при нажатии как на одну, так и на другую кнопку. Он также зазвонит (но не вдвое громче), если я нажму одновременно на обе кнопки.
Н. — Согласен, но тогда твое определение ИЛИ следовало бы заменить каким-либо специальным словом.
Л. — Отчасти верно. Мы так привыкли придавать слову «или» исключающий характер, что если сами мы говорим о каком-то человеке, будто он большой или маленький, то, разумеется, не имеем в виду, что он может быть одновременно и большим, и маленьким. Но слово «или» употребляется и без исключающего смысла. Когда мы, например, говорим, что транзистор испорчен или неправильно используется, вполне возможно одновременно и то и другое и в этом случае слово «или» не носит идеи исключения.
Перейдем теперь к элементу И. Обозначение этого элемента я воспроизвел на рис. 126.
Рис. 126.Обозначение логического элемента И, который выдает напряжение на выходе, когда напряжение имеется одновременно на одном и на другом входах.
Этот элемент дает напряжение на выходе, когда напряжение одновременно подается на вход А и на вход В. Пример такого элемента мы можем получить: представь себе, что напряжения А и В приводят в действие два реле, нормально разомкнутые контакты которых включены последовательно.
А теперь я познакомлю тебя с логическим элементом НЕ. Его условное обозначение приведено на рис. 127.
Рис. 127.Обозначение элемента НЕ, который выдает напряжение на выходе, когда на входе напряжения нет, и наоборот.
Этот элемент дает напряжение на выходе, когда на его входе нет напряжения, и не дает выходного напряжения, когда на его вход подается напряжение. Такую схему можно получить, если входное напряжение А подавать на катушку реле, с нормально замкнутого контакта которого на выход схемы подается положительное напряжение.
Н. — Твои элементы представляются мне достаточно простыми, но я сожалею о наличии в них реле. Должно быть, имеется возможность заменить их какими-нибудь компонентами, способными работать быстрее.