Л. — Превосходно, Незнайкин, ты прекрасно преобразовал это число. А сможешь ли ты теперь сделать сложение по правилам двоичной арифметики?
Н. — Вероятно, это довольно сложно, но я тем не менее готов попробовать.
Л. — Хорошо, вот тебе числа для сложения
Для облегчения твоей работы я над каждой колонкой расположил маленькие буковки: а обозначает единицы, 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. Обозначение логического элемента И, который выдает напряжение на выходе, когда напряжение имеется одновременно на одном и на другом входах.